内部类
内部类
把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类。包含内部类的类被称为外部类。
内部类的作用
- 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。
- 内部类成员可以直接访问外部类的私有数据。因为内部类被当做其外部类的成员,同一个类的成员之间可以相互访问。但外部类不能访问内部类的实现细节,例如内部类的成员变量。
- 匿名内部类适用于创建那些仅需要一次使用的类。
注意:内部类比外部类可以多使用三个修饰符:private、protected、static,外部类不可以使用这三个修饰符
非静态内部类不能拥有静态成员。
静态内部类
用static修饰的内部类叫做静态内部类
- 静态内部类属于外部类本身,而不属于外部类的某个对象
- 静态内部类不能访问外部类的实例成员,只能访问外部类的类成员
匿名内部类
定义格式
new 实现接口() | 父类构造器(实参列表) { //匿名内部类的类体部分 }
匿名内部类不能是抽象类。
匿名内部类不能定义构造器。