1.成员内部类
1、定义在一个类的内部,与这个类的成员(属性、方法)平级,并且没有用static修饰的类。
2、访问权限可以是任意的权限,类似于一个类中的成员。可以是private,默认的,ptotected,public
3、实例化的过程,需要先实例化外部类对象,再使用外部类对象进行内部类的实例化
2.静态内部类
定义在一个类的内部,与这个类的成员(属性、方法)平级,并且使用static修饰的类。
1、访问权限可以是任意的权限,类似于一个类中的成员。
2、实例化的过程中,直接使用 new实例化一个外部类 .内部类对象即可。
3、内部类编译后,也会生成.class字节码文件。格式:外部类$内部类 .class
3.局部内部类
定义在某一个代码段中的中。
1、没有访问权限修饰符。
2、在当前方法中,直接实例化即可
3、内部类编译后,也会生成.class字节码文件。格式:外部类$序号内部类 .class
4.匿名内部类
1、没有名字的子类型对象
2、用法:接口名|抽象类名|父类名 变量= new 接口名|抽象类名|父类名(){
方法的重写
};