day23内部类
一、定义:
在一个类的内部定义的类,称为内部类。
二、实例内部类
1、创建:public class A{}
1、创建实例内部类,外部类的实例必须已经创建
2、实例内部类会持有外部类的引用
3、实例内部不能定义 static 成员,只能定义实例成
4、内部类可以使用 private 和 protected 修饰
5、使用:外部类.内部类 引用=new 外部类().内部类();l 例子:InnerClassTest01.Inner1 inner1 = new InnerClassTest01(100, 200).new Inner1();
三、局部内部类
1、局部内部类是在方法中定义的,它只能在当前方法中使用。
2、局部变量的作用一样 局部内部类和实例内部类一致,不能包含静态成员
3、局部变量,在内部类中使用必须采用 final 修饰
四、静态内部类
1、静态内部类不会持有外部的类的引用,创建时可以不用创建外部类
2、静态内部类可以访问外部的静态变量,如果访问外部类的成员变量必须通过外部类的实例访问
3、创建: static class A{}
五、匿名内部类(使用最多)
是一种特殊的内部类,该类没有名字
例子:记住这种语法就可以了。
b.move1(new A(){
public int sum(int a, int b){
return a+b;
}
},100,200);
}
}
interface A{
public int sum(int a, int b);
}