标签:属性 访问 创建 const new 允许 类成员 通过 非静态方法
1.将一个类定义在另一个类里面,里面的那个类称为内部类,与属性、方法等一样视作外部类的成员。内部类提供了更好的封装,不允许同包中的其他类访问该内部类。
2.内部类作为外部类的成员,同样可以被4个访问限定符修饰。如果外部类需要访问非静态内部类的成员,必须创建非静态内部类对象来访问。
3. 内部类成员可以直接访问外部类的数据。
4. 如果存在一个非静态内部类对象,则一定存在一个被它寄存的外部类对象,也就是说在拥有外部类对象之前是不可能创建内部类对象的。但外部类对象存在时,非静态内部类对象不一定存在。
5. 非静态内部类里不能有静态方法/静态属性/静态初始化块,也不能有嵌套类(static innerClass)。
6. 在外部类的非静态方法内,可以直接通过new创建内部类对象,而且可以省略OuterClassName。在外部类的非静态方法之外引用内部类的对象时,需要具体指明这个对象的类型OuterClassName.InnerClassName varName;而且创建时,需要由外部类对象调用内部类的构造器OuterInstance.new InnerConstructor()。
7. 非静态内部类对象里对外部类对象的引用:OuterClassName.this,this指非静态内部类对象本身。
8. 内部类自动拥有对其外部类所有成员的访问权,包括private。
标签:属性 访问 创建 const new 允许 类成员 通过 非静态方法
原文地址:http://www.cnblogs.com/Eason-chen/p/7642556.html