-
成员内部类
1. 定义:有类名,定义在外部类的成员位置上,本质是一个成员,作用域为整个类体。
2. 成员内部类可以直接访问外部类的所有成员,包括私有的,外部类想要访问成员内部类,需要创建该成员内部类的对象才可进行访问,包括私有的。
3. 成员内部类可以添加任意修饰符,因为他本质是一个成员。
4. 外部其他类可以访问成员内部类,有两种方式:
(1) 先给外部类分配空间,然后再通过外部类的实例给内部类分配空间
外部类名.内部类名 = new 外部类名.new 成员内部类名(构造器的参数列表)
(2) 在外部类中定义一个方法,用来返回成员内部类的对象
外部类名.内部类名 = new 外部类名.方法名(方法的参数列表)
5. 访问外部类成员时,也要通过“外部类名.this.成员名”的方式去访问、
-
静态内部类
1. 定义:有类名,定义在外部类的成员位置上,用static修饰,本质是一个静态成员,作用域为整个类体。
2. 静态成员内部类可以添加任意修饰符,因为他本质是一个静态成员。
3. 静态成员内部类只能访问静态成员。静态内部类中的普通方法也只能访问静态属性和方法。
4. 外部其他类可以访问静态内部类,有两种方式:
(1) 先给外部类分配空间,然后再通过外部类的实例给内部类分配空间(满足访问权限)
外部类名.内部类名 = new 外部类名.静态内部类名(构造器的参数列表)
(2) 在外部类中定义一个方法,用来返回静态内部类的对象实例(满足访问权限)
外部类名.内部类名 = new 外部类名.方法名(方法的参数列表)
5. 访问外部类成员时,要通过“外部类名.成员名”的方式去访问、