外部类 访问 内部类
1.当内部类是静态内部类
访问静态内部类的静态成员 静态内部类.静态成员
访问静态内部类的非静态成员 new 静态内部类().非静态成员
2.当内部类是非静态内部类
访问非静态内部类的静态成员 不可能出现 内部类有静态成员,那么该内部类也是静态内部类
访问非静态内部类的非静态成员 当是外部类的非静态方法来访问时 new 内部类名().非静态成员
当外部类是静态方法来访问时 不能访问,静态方法只能访问静态内部类
内部类 访问 外部类
1.当内部类是静态内部类
静态内部类只能访问外部类的静态成员,出现访问局限性
2.当内部类是非静态内部类(这种情况下内部类中的成员也都是非静态的,不能有静态的成员)
可以直接访问外部类的所有的成员,包括私有的成员,也包括静态成员
外部的类(第三个类) 访问 内部类
1.当内部类是静态内部类
访问静态内部类的静态成员 外部类名.内部类名.静态成员
访问静态内部类的非静态成员 new 外部类名.内部类名().非静态静态成员
2.当内部类是非静态内部类
访问非静态内部类的静态成员 不可能出现 内部类有静态成员,那么该内部类也是静态内部类
访问非静态内部类的非静态成员 new 外部类名().new 内部类名().非静态成员
或者 外部类名.内部类名 变量名 = new 外部类名().new 内部类名();
变量名.非静态成员
注意:当内部类中有静态成员时,那么这个类就一定也是静态内部类,要用static来修饰
外部类的静态方法只能访问静态外部类,不能访问非静态外部类
|
|