什么是内部类
我们把一个类放在另一个类的内部定义,称为内部类
内部类有什么好处
内部类提供了更好的封装。只能让外部类直接访问,不允许同一个包中的其他类直接访问。
内部类可以直接访问外部类的私有属性,内部类被当成其外部类的成员。但外部类不能访问内部类的内部属性。
/**外部类Outer*/
class Outer {
private int age = 10;
public void show(){
System.out.println(age);//10
}
/**内部类Inner*/
public class Inner {
//内部类中可以声明与外部类同名的属性与方法
private int age = 20;
public void show(){
System.out.println(age);//20
}
}
}
成员变量访问要点
内部类属性:this.变量名。
外部类属性:外部类名.this.变量名。
创建内部类对象
外部类.内部类 = new 外部类.new 内部类
如图
最重要的匿名内部类
new 父类构造器(实参类表) \实现接口 () {
//匿名内部类类体!
}
适合那种只需要使用一次的类。比如:键盘监听操作等等。在安卓开发、awt、swing开发中常见。
局部内部类
加static的只能运行一次
没有加的创建一次对象运行一次