天天看点

Java内部类:成员内部类(二)

Java内部类分为4个部分进行阐述,分别为概览、成员内部类、局部内部类和匿名内部类。

在本文中是Java内部类的成员内部类,主要讲述成员内部类的访问方式和一些细节。

成员内部类

成员内部类的访问方式

非static成员内部类

static成员内部类

外部类提供一个方法创建内部类的对象

直接创建内部类的对象

成员内部类要注意的细节

1、成员内部类的访问方式

成员内部类的访问方式,也可以理解为它的创建方式,主要分为两种:第一种是由外部类提供一个方法,用来创建内部类的对象,第二种方法直接创建内部类的对象。

在下面的代码当中,由OuterClass提供一个getInnerClassInstance方法,用来创建InnerClass内部类的对象。

示例代码:

完整代码:

直接创建成员内部类的对象,可以分为两种情况:一种是当成员内部类被static修饰时,另一种是不被static修饰时。

当成员内部类不被static修饰时,其创建格式为:

当成员内部类被static修饰时,其创建格式为:

2、成员内部类要注意的细节

如果外部类与内部类存在同名的成员变量时,在内部类中默认情况下是访问内部类的成员变量。可以通过"外部类.this.成员变量名" 指定访问外部类的成员。

可以通过“外部类.this”访问外部类的同名“成员变量”

可以通过“外部类.this”访问外部类的同名“成员方法”

    私有(private)的成员内部类只能在外部类提供一个方法创建内部类的对象进行访问,不能在其他类创建对象了。

    成员内部类一旦出现了静态的成员,那么该类也必须使用static修饰。

在上述代码中,PI被声明为static,那么也要求将InnerClass声明为static。

3、思维导图

Java内部类:成员内部类(二)