A:内部类可以直接访问外部类中的成员,包括私有成员。
B:而外部类要访问内部类中的成员必须要建立内部类的对象。
(3)内部的存放位置
A:成员位置
**可以被private,static成员修饰符修饰。
**被static修饰的内部类只能访问外部类中的静态成员。
B:局部位置
**也可以直接访问外部类中的成员。
**同时可以访问所在局部中的局部变量,但必须是被final修饰的。
Outer$Inner.class:$表示成员内部类。
Outer$1Inner.class:$1表示它是一个局部内部类。
***为什么会出现编号呢?因为局部内部类可以不写名字,所以带编号。
(4)匿名内部类:没有名字的内部类。它是内部类的简化写法。
A:前提:内部类可以继承或实现一个外部类或者接口。
B:格式为:new 外部类名或者接口名(){覆盖类或者接口中的代码,(也可以自定义内容。)}
C:简单理解:就是建立一个带内容的外部类或者接口的子类匿名对象。 |