1、概念
在一个类的内部定义类,前者称为外部类,后者称为内部类。
2、分类
2.1 成员内部类(静态、非静态)
(1)作为外部类的成员;
(2)也可以定义属性、方法、构造器等,可以被final修饰;
(3)非静态成员内部类可以调用外部类的非静态方法,外部类名.this.非静态方法名;
(4)可以被static,四种权限修饰符进行修饰。
(5)如何去实例化成员内部类对象?
创建静态成员内部类对象:
外部类名.内部类名 a = new 外部类名.内部类名();
创建非静态成员内部类对象:
先实例化外部类对象,在通过这个对象new内部类对象:
外部类名 a = new 外部类名();
外部类名.内部类名 b = a.new 内部类名();
2.2 局部内部类(在方法内、代码块内、构造器内)
通常使用在方法内,可以在方法内创建一个类,然后对其实例化返回相应的对象。