3分钟带你理解:Java面向对象中的成员内部类

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


上篇文章我们讲到Java面向的一个重要特征--“封装”,而内部类的使用可以提供更好的封装。


回忆:

内部类的主要作用:

  1. 内部类提供了更好的封装,可以把内部隐藏在外部之内,不允许同一个包中的其他类访问该类

  2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据。

  3. 内部类所实现的功能使用外部类同样可以实现,只是有时候使用内部类更加方便。


而内部类可简单分为4种,分别是:

  • 成员内部类

  • 静态内部类

  • 方法内部类

  • 匿名内部类


  • 成员内部类

成员内部类是最常见的内部类,也称为普通内部类,因为成员内部类定义在外部类的内部(MD废话),相当于外部类的一个成员变量,所以叫做成员内部类。

举个例子:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

通过这个简单的例子,我们知道成员内部类的使用方法以及一些特征:

  1. 内部类可以任意使用访问控制符(public、protected、private等)

  2. 内部类中的方法可直接访问外部类的数据,如图中内部类SiChuan中的show( )方法可直接访问外部类China中的私有属性popu。


    640?wx_fmt=png

  3. 创建内部类对象必须使用外部类对象,而不能直接new一个内部类对象。


    640?wx_fmt=png


注意:外部类和内部类具有相同名字的成员变量或方法时,内部类默认访问内部类的成员变量或方法,如果要访问同名的外部类的成员变量,可以使用this关键字。如:

640?wx_fmt=png

640?wx_fmt=png

猜你喜欢

转载自blog.csdn.net/wyC1K04BLoQyJ/article/details/79987794