Java 内部类示例

时间:2023-03-10 01:58:52
Java 内部类示例

在下面的示例中,创建了一个数组,使用升序的整数初始化它,并打印索引为偶数的数组值。

public class DataStructure {

    // 创建一个数组
private final static int SIZE = 15;
private int[] arrayOfInts = new int[SIZE]; public DataStructure() {
// 使用升序整数填充数组
for (int i = 0; i < SIZE; i++) {
arrayOfInts[i] = i;
}
} public void printEven() { // 打印数组的偶数索引值
DataStructureIterator iterator = this.new EvenIterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
System.out.println();
} interface DataStructureIterator extends java.util.Iterator<Integer> { } // DataStructureIterator 继承 java.util.Iterator<Integer> 接口
// 内部类 EvenIterator 实现 DataStructureIterator 接口 private class EvenIterator implements DataStructureIterator { //
private int nextIndex = 0; public boolean hasNext() { // 检查当前元素是否为最后一个数组元素
return (nextIndex <= SIZE - 1);
} public Integer next() { // 保存数组索引为偶数的值
Integer retValue = Integer.valueOf(arrayOfInts[nextIndex]); // 获取下一个偶数元素
nextIndex += 2;
return retValue;
}
} public static void main(String[] args) { // 用整数值填充数组并打印出数组索引为偶数的值
DataStructure ds = new DataStructure();
ds.printEven();
}
}

输出结果:

0 2 4 6 8 10 12 14

注意:EvenIterator类直接引用了DataStructure实例的arrayOfInts变量。