内部类之非静态内部类补充
一 .外部类访问非静态内部类的途径
外部类无法访问内部类的细节,解决方法:
1.在非静态内部类的public void info(){}方法里实现了非静态内部类的所有细节
2.外部类的public void test(){}创建了非静态内部类的对象
3.这样外部类方法test()里的内部类对象就可以访问自身模板里的公共权限的info()方法,间接访问了非静态内部类的所有细节
4.而test方法的调用,只需创建外部类对象即可
二.非静态内部类对象和外部对象的关系
非静态内部类对象必须寄生在外部类对象里---如果存在一个非静态内部类对象,则一定存在一个被它寄生的外部类对象; 外部类对象不一定寄生了非静态内部类对象
三.不允许在外部类静态成员中直接使用非静态内部类
因为静态成员随类一起加载,非静态的都还不存在,同理:非静态内部类不能有静态方法,静态成员变量,静态初始化块