Java 12
一、内部类
- 定义:在类在定义的类就是内部类
- 格式:
public class WaiBuLei{//外部类
public class NeiBuLei{//内部类
}
}
- 访问特点:
- 在内部类中是可以直接访问到外部类中成员属性(包括私有);
- 在外部类想要访问内部类的成员,必须创建对象。
二、内部类的分类(有些地方可能分为两种:成员内部类和局部内部类)
- 成员内部类
- 方法内部类
- 静态内部类(有些地方归于成员内部类)
- 匿名内部类(有些地方归于方法内部类)
三、内部类的区别
- 如果类定义在方法里面,该类就是为方法内部类或者是局部内部类。
- 如果类定义在方法外面,该类就是为成员内部类,如果加上了staic静态修饰,则该类视为静态内部类。
在外界访问内部类
格式:外部类.内部类 = new 外部类().new 内部类();
范例:MayiktA.MayiktB = new MayiktA().new MayiktB();
在实际开发中是不会这样使用的。因为一般内部类就是不让外界直接访问。成员内部的常见修饰符private就是为了保证数据的安全性。
四、静态内部类
- 有static关键字修饰的内部类为静态内部类。
- 静态内部类访问外部类的静态成员变量或方法必须是静态的。
- 访问格式:new WaiBuLei.JingTaiNeiBulei(); //new 外部类.静态成员或方法();
五、局部内部类
- 定义:在方法里面定义的类就是局部内部类。
- 局部内部类是在方法中定义的类,所以外界是无法直接使用,需要在方法内部创建对象并使用。该类可以直接访问外部类的成员,也可以访问方法内部的局部变量。
六、匿名内部类
- 匿名内部类 new 接口(实现类)或者是抽象类(子类)
- 本质
- 一个继承了该类(子类)或者实现了该接口的(实现类)匿名对象。