理论教育 Java程序设计:成员内部类的访问方式

Java程序设计:成员内部类的访问方式

时间:2023-10-18 理论教育 版权反馈
【摘要】:外部类访问内部类的成员属性或成员方法时需要先创建内部类的对象,再通过内部类对象访问内部类属性。而成员内部类作为外部类的成员,在类中可以直接访问外部类的任意成员。如果要在成员内部类中访问外部类的同名成员,用以下形式进行访问:① 在内部类中访问同名外部类中的成员变量:外部类.this.成员变量。

Java程序设计:成员内部类的访问方式

(1)内部类中的方法可以直接访问外部类的成员属性和成员方法(包括private和static修饰的成员)。

(2)外部类访问内部类的成员属性或成员方法时需要先创建内部类的对象,再通过内部类对象访问内部类属性。

创建内部对象的两种方式:

① 在外部类的成员函数中创建内部类的对象。

成员内部类作为外部类的成员,可以在外部类的成员方法中或在定义内部类引用时直接用成员内部类创建对象。如在例子6.2中,在外部类School类的构造方法中直接用内部类Book类创建对象。

Book book=new Book();

② 在外部类以外的其他类中创建内部类的对象。

成员内部类是依附外部类而存在的,如果要创建成员内部类的对象,必须先创建一个外部类的对象,再使用外部类对象创建内部类对象。形式如下:

School.Book book=new School().new Book();(www.daowen.com)

【例6.3】成员内部类的成员访问方式。阅读Example6_3.java程序,理解在成员内部类中可以直接访问外部类成员,而在外部类中要访问内部类成员则必须先创建内部类对象,再通过内部类对象访问内部类的成员。

外部类访问内部类的属性和方法时,必须先创建内部类对象,再通过内部类的对象访问内部类对象的属性和方法。而成员内部类作为外部类的成员,在类中可以直接访问外部类的任意成员。

(3)当成员内部类与外部类有同名的成员变量或者方法时,在成员内部类中访问到的是成员内部类中的同名成员。如果要在成员内部类中访问外部类的同名成员,用以下形式进行访问:

① 在内部类中访问同名外部类中的成员变量:外部类.this.成员变量。

② 在内部类中访问同名外部类中的成员方法:外部类.this.成员方法。

【例6.4】

在例6.4中,内部类在showNum方法中存在了两个this对象,一个是外部类对象,另一个是内部类对象,所以在this前面加上类名标明对应的类。如OuterClass.this.num表示引用外部类的num成员,如果写成InnerClass.this.num则表示引用内部类的num成员。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈