内部类
在类中包含的类就属于内部类
class A{ class B{}} class 就是内部类 调用内部类可以通过class A的对象访问,也可以直接访问,访问方式为
A.B temp = newA(); 内部类可以调用直接访问外部类
内部类访问规则:
内部类可以直接访问外部类中的成员,包括私有。
之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用, 格式 外部类.this
外部类要访问内部类,必须建立内部类对象。
访问格式:
当内部类定义在外部类的成员位置上,而且非私有,在外部其他类中。可以直接建立内部类对象。
格式 外部类名。内部类名 变量名 = 外部类对象。内部类对象;
Outer.Inner in = new Outer().new Inner();
当内部类在成员位置上,就可以被成员修饰符所修饰。
比如 private 将内部类在外部类中进行封装。
static 内部类就具备static 的特性。
当内部类被static 修饰后,只能直接访问外部类中的static成员,出现了访问局限。
在外部其他类中,可以同过 new Outer。Inner()。function();的方式访问static内部类的非静态成员。
在外部其他类中,通过Outer。Inner。funciton();访问static内部类的静态成员。
注意 当内部类中定义了静态成员,该内部类必须是static的。
当外部类中的静态方法访问内部类时,内部类也必须是static的。