内部类:
将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)。字节码文件名:外部类名$内部类名.class 。
内部类访问特点:
1、内部类可以直接访问外部类中的成员,包括私有成员。因为内部类持有了外部类的引用,外部类名.this
2、而外部类要访问内部类中的成员必须要建立内部类的对象。
直接访问外部类中的内部类中的成员:外部类名.内部类名 = new 外部类对象.new 内部类对象;
Outer.Innerin = new Outer().new Inner(); in.method();
匿名内部类:就是内部类的简写格式。其实匿名内部类就是一个匿名子类对象,而且这个对象有点胖,也可以理解为,带内容的对象。
必须有前提:内部类必须继承或者实现一个外部类或者接口。(因为内部类是用父类的名字创建对象)
匿名内部类:其实就是一个匿名子类对象。 匿名内部类格式:new 父类或者(or)接口(){子类成员}
|