Java内部类
2020-07-25 本文已影响0人
一曲三月
1. 内部类
在一个类的内部另外定义一个类,分为静态内部类,方法内部类,成员内部类,匿名内部类
- 内部类的实例化,new 外部类对象.内部类名()
- 内部类的访问,内部类可以直接访问外部类的成员,包括私有。格式:外部类名.this.外部类变量名
- 外部类访问内部类,需要建立内部类对象
- 内部类定义在类的成员位置时,而且非私有,则在外部其他类中可以直接建立内部类对象。格式:
外部类名.内部类名 变量名 = 外部类对象.内部类对象
Outer.Inner in = new Outer().new Inner()
2. 静态内部类
- static 修饰的内部类,静态内部类只能调用外部类的静态变量。
- 静态内部类的静态成员访问,外部类名.内部类名().变量
- 静态内部类非静态成员访问,new 外部类名.内部类名().变量
- 当内部类定义了静态成员,内部类必须是静态内部类,当外部类中的静态方法访问内部类时,内部类也必须时static
3. 匿名内部类
- 类的方法的调用更加方便,以及参数数据的返回
- 这个时候可以new 接口了,格式new 接口或者父类(){
方法体定义实现类的方法
} - 匿名内部类只能访问外部类中用final修饰的局部变量