内部类,一个被称为静态嵌套类,一个被称为内部类。
从字面的角度解释是这样的:
什么是嵌套?嵌套就是我跟你没关系,自己可以完全独立存在,但是我就想借你的壳用一下,来隐藏一下我自己,,不想被其他类依赖。
什么是内部?内部就是我是你的一部分,我了解你,我知道你的全部,没有你就没有我。(所以内部类对象是以外部类对象存在为前提的)
静态类不能访问外部类的非静态成员和非静态方法(不管是public还是private的);静态类的实例不需要先实例化外部类成员,可直接实例化。
package com.yd.wmsc.util; public class Person{ //姓名 private String name; //家庭 private Home home; //构造函数设置属性值 public Person(String _name){ name = _name; } /* home、name的getter/setter方法省略 */ private static class Home{ //家庭地址 private String address; //家庭电话 private String tel; public Home(String _address,String _tel){ address = _address; tel = _tel; } /* address、tel的getter/setter方法省略 */ } public String getName() { return name; } public void setName(String name) { this.name = name; } public Home getHome() { return home; } public void setHome(Home home) { this.home = home; } public static void main(String[] args) { Home home = new Person.Home("上海", "021"); Person p1 = new Person("张三"); Person p2 = new Person("李四"); p1.setHome(home); p2.setHome(home); } }