参考原文地址:原文链接
静态内部类,所谓静态是在加载它的时候存在与方法区中的与实例没有半毛钱关系,静态内部类同样是不依赖具体的外部类,即:
1:不持有外部类的引用
2:不能访问外部类的非静态属性和方法,可以访问外部类的静态实行属性和方法(private也不例外)
3:普通内部类不能声明static的方法和变量:常量final static还是可以的,静态内部类没有限制
4:普通内部类与外部类同生共死,一起声明,一起被垃圾回收
下面是具体代码:
public class Person {
private String name;
private static int age;
private Home home;
//静态内部类只能访问外部类的静态属性和方法,静态内部类不持有外部类的引用
public static class Home{
private String add;
private int tel;
public Home(String add,int tel){
this.add = add;
this.tel = tel;
}
public int getTel(){
return this.tel;
}
public String getAdd(){
return this.add;
}
public void setAdd(String add){
this.add = add;
}
public void setTel(int tel){
this.tel = tel;
}
}
public void setHome(Home home){
this.home = home;
}
public Home getHome(){
return this.home;
}
}