内部类,不累

内部类按照作用域可做如下划分 :
内部类:成员内部类 、 局部内部类
成员内部类:实例内部类 、静态内部类

处于最顶层的类称为:顶层类,只能处于public和默认级别
而成员内部类可处于public、protected、private 和默认级别

实例内部类:成员内部类的一种,没有static修饰符。具有以下的特点
(1)在创建实例内部类的实例时,外部类的实例必须已经存在
(2)实例内部类的实例自动持有外部类的实例的引用,在内部类中可以直接访问外部类的所有成员。
(3)外不类实例与内部类实例之间是一对多的关系,一个内部类实例只会引用一个外部类实例,而一个外部类实例对应零个或者多个内部类实例,在外部类的实例中不能直接访问内部类的成员,必须通过内部类的实例去访问。
(4)在实例内部类中不能定义静态成员,而只能定义实例成员
(5)如果实例内部类B与外部类A包含同名的成员,使用this时要注意。

静态内部类:静态内部类是成员内部类的一种,用static修饰。具有以下特点
(1) 静态内部类的实例不会自动持有外部类的特定实例的引用,在创建内部类的实例时,不必创建外部类的实例
(2) 静态内部类可以直接访问外部类的静态成员,如果要访问外部类的静态成员,必须通过外部类的实例去访问。
(3) 在静态内部类中可以定义静态成员和实例成员
(4) 客户类可以通过完整的类名直接访问静态内部类的静态成员。

局部内部类:局部内部类是在一个方法中定义的内部类具有以下的特点:
(1) 局部内部类只能在当前方法中使用
(2) 不能包含静态成员
(3) 不能使用public、protected、private来修饰。
(4) 局部内部类和实例内部类一样,可以访问外部类的所有成员,此外,局部内部类还可以访问所在方法中的final类型的参数和变量.

未完待续。。。

你可能感兴趣的:(java基础,java)