内部类
讨论内部类的使用之前,首先来观察一个数组。接下来的例子中,你创建一个数组,使用Integer指填充这个数组,然后只升序输出这个数组中下标为偶数的值。
DataStructure.java
例子有以下几个部分组成:
DataStructure
外部类,包含了一个创建DataStructure
实例的构造函数,实例包含一个填充了连续的整数数组(0,1,2,3…)以及一个打印出数组偶数下标元素的值的方法。EvenIterator
内部类,实现了DataStructureIterator
接口,并继承了Iterator
<
Integer
>
迭代器接口。迭代器是用来一步步的迭代一个数据结构并且通常有一个测试是否到达最后一个元素的方法,获取当前的元素并将指针移向下一个元素。- 一个
main
方法,实例化一个DataStructure
对象ds
,调用ds
对象的printEven
方法来输出arrayOfInts
数组中具有偶数下边的元素值。
|
|
输出如下:
|
|
注意EvenIterator
类直接引用DataStructure
对象的实例变量arrayOfInts
.
你可以使用内部类来实现类似以上例子中的辅助类。处理用户界面事件时,你必须直到如何使用内部类,因为事件处理机制使通过内部类来扩展其用法。
局部类与匿名内部类
有中附加的内部类。你可以在一个方法的内部定义一个类,这样的类叫做局部类 local classes. 。你同样可以在方法内定义一个未命名内部类,这样的类讲过匿名内部类 anonymous classes.。
限定修饰符
你对内部类使用同外部类其他成员一样的限定修饰符。例如,你可以使用特定的private
,public
,以及protected
来显示对内部类的访问,同其他类的成员一样。