文档

Java™教程
隐藏目录
问题和练习
教程:学习Java语言
课程:类和对象

问题和练习:嵌套类

问题

  1. 程序Problem.java无法编译。你需要做什么才能使它能够编译?为什么?

  2. 使用Java API文档中的Box类(位于javax.swing包中)来帮助你回答以下问题。

    1. Box定义了哪个静态嵌套类?

    2. Box定义了哪个内部类?

    3. Box的内部类的父类是什么?

    4. 在任何类中都可以使用Box的哪些嵌套类?

    5. 如何创建BoxFiller类的实例?

练习

  1. 获取文件Class1.java。编译并运行Class1。输出是什么?

  2. 以下练习涉及修改类DataStructure.java,该类在内部类示例中有讨论。

    1. 定义一个名为print(DataStructureIterator iterator)的方法。使用EvenIterator类的实例调用此方法,使其执行与printEven方法相同的功能。

    2. 调用方法print(DataStructureIterator iterator),使其打印具有奇数索引值的元素。使用匿名类作为该方法的参数,而不是接口DataStructureIterator的实例。

    3. 定义一个名为print(java.util.function.Function<Integer, Boolean> iterator)的方法,该方法执行与print(DataStructureIterator iterator)相同的功能。使用lambda表达式调用此方法,以打印具有偶数索引值的元素。再次使用lambda表达式调用此方法,以打印具有奇数索引值的元素。

    4. 定义两个方法,使得以下两个语句打印具有偶数索引值的元素和具有奇数索引值的元素:

      DataStructure ds = new DataStructure()
      // ...
      ds.print(DataStructure::isEvenIndex);
      ds.print(DataStructure::isOddIndex);

检查你的答案。


前一页:何时使用嵌套类、局部类、匿名类和Lambda表达式
下一页:枚举类型