成员内部类
和方法的成员放在一个位置上
在内部类中,可以直接访问外部类的私有成员
Outer.Inner i = new Outer().new Inner();
局部内部类
放在外部类方法体中,出了方法无法使用
匿名内部类
可以把匿名内部类看成是一个没有名字的局部内部类
定义在方法中
必须在定义匿名内部类的时候创建对象
格式:
new 类/接口(){
如果是创建了继承这个类的子类对象,我们可以重写父类的方法
应用场景:作为参数进行传递
如果是创建了实现这个接口的子类对象,我们必须要实现改接口的所有方法
};
原理:创建了继承这个类的子类对象或者是创建实现这个接口的子类对象
共性:
内部类仍然是一个独立的类,在编译以后内部类会被编译成独立的 .class文件,但是前面冠以外部类的类名和$符号
内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的
网友评论