内部类共用概述
- 内部类:在一个类中定义另一个完整的类
- 内部类的做i有是给外部类提供服务的
- 内部类编译后会生成一个独立的class文件
-
内部类按照不同的修饰符和定义的位置分为以下四类
成员内部类
成员内部类定义在类中,和成员变量,成员方法平级,成员内部类不使用sataic修饰
成员内部类创建对象需要依赖外部类的对象
- 成员内部类不包含静态成员(静态变量,静态方法)
- 内部类编译乘车的字节码文件格式是 外部类$成员部类.class
- 成员内部类示例
-
静态内部类
静态内部类定义在类中,和成员变量,成员方法平级,成员内部使用sataic修饰
静态内部类创建对象需要依赖外部类的对象
- 静态内部类包含静态成员(静态变量,静态方法)
- 内部类编译乘车的字节码文件格式是 外部类$静态内部类.class
- 静态内部类示例
-
局部内部类
局部内部类定义在方法中,只能在方法中使用。(日常开发中几乎使用不到)
局部内部类使用了方法的局部变量,那么这个局部变量默认就使用final修饰
- 几遍内部类不能定义静态成员
- 局部内部类只能使用默认访问权限
局部内部类边缘化的格式 外部类$编号内部类.class(为什么是编号,因为可以在方法中定义多个局部内部类)
public void showStaticInner(int age) {
class Inners{
private String name;
public Inners(String name) {
this.name = name;
}
}
Inners inners = new Inners("nb");
System.out.println("inners = " + inners.name);
}
匿名内部类
匿名内部类 没有名字的对象
匿名内部类表示没有名字的局部内部类
- 一切特征和局部内部类相同
- 匿名内部类示例