内部类
一、什么是内部类Inner class?
1.定义在其他类中的类叫内部类(京城和紫禁城);
2.即把一个类的定义放在其他类的内部;
二、内部分一共分为四种:
1.静态内部类:将一个类的定义放在其他类中,并且使用static进行修饰,静态内部类可以直接使用外部类的静态成员;
适用场景:本类中有一个方法极为复杂,需要在内部再创建一个类来实现;
如果内部类的修饰符是private,别的类无法访问,不加或public可以访问。
/*语法:
外 w = new 外();
外.内 n = 外.new 内();
n.test();*/
2.成员内部类(非静态):将类的定义放在其他类中,不能使用static修饰;
与静态区别:成员内部类可以使用外部类的非静态成员;
3.方法内部类(定义在一个类的一个方法中):
将类的定义放在某个方法中;
4.匿名内部类(属于方法内部类的一种,但是匿名内部类没有名,这个类创建好了,只用一次就可以定义为匿名内部类):
定义:没有名称的类(省略了),因为此类只用一次,因此将类名省略,直接创建;
限制:一定是某个抽象类的子类,或某个接口的实现类,并且只能用一次;
语法
接口名 a = new 接口名(){
public void 重写方法名(){
方法体;
}
}