上篇文章我们讲到Java面向的一个重要特征--“封装”,而内部类的使用可以提供更好的封装。
回忆:
内部类的主要作用:
内部类提供了更好的封装,可以把内部隐藏在外部之内,不允许同一个包中的其他类访问该类
内部类的方法可以直接访问外部类的所有数据,包括私有的数据。
内部类所实现的功能使用外部类同样可以实现,只是有时候使用内部类更加方便。
而内部类可简单分为4种,分别是:
成员内部类
静态内部类
方法内部类
匿名内部类
成员内部类
成员内部类是最常见的内部类,也称为普通内部类,因为成员内部类定义在外部类的内部(MD废话),相当于外部类的一个成员变量,所以叫做成员内部类。
举个例子:
通过这个简单的例子,我们知道成员内部类的使用方法以及一些特征:
内部类可以任意使用访问控制符(public、protected、private等)
内部类中的方法可直接访问外部类的数据,如图中内部类SiChuan中的show( )方法可直接访问外部类China中的私有属性popu。
创建内部类对象必须使用外部类对象,而不能直接new一个内部类对象。
注意:外部类和内部类具有相同名字的成员变量或方法时,内部类默认访问内部类的成员变量或方法,如果要访问同名的外部类的成员变量,可以使用this关键字。如: