Java编程:类与对象基础练习

需积分: 0 0 下载量 47 浏览量 更新于2024-08-04 收藏 34KB DOCX 举报
"第19章基础练习题2" 本章主要涵盖了Java编程语言中的类、对象、继承以及泛型相关的基础知识。题目旨在检验学生对这些概念的理解和应用能力。 1. 语句`Class clz = null;`的含义是创建了一个`Class`类的对象`clz`,并将其赋值为一个空引用。在Java中,`Class`类是所有类的元类,它提供了关于类的信息,如类的名称、构造方法等。这里将`clz`声明为`null`意味着尚未将其关联到任何特定的类信息。 2. 题目给出了以下类的继承关系: - `GeometricObject` 是基类 - `Polygon` 派生自 `GeometricObject` - `Rectangle` 派生自 `Polygon` (1) 声明一个指向`PolyGon`及其子类的类型信息的引用变量`clz`的语句应为:`Class<? extends Polygon> clz;` 这表示`clz`可以指向任何`Polygon`或其子类的类信息。 (2)`System.out.println(o.getClass().getSimpleName());`的输出结果是`Rectangle`,因为`o`是一个`Rectangle`对象,`getSimpleName()`返回类的简单名称,即不包括包名的类名。 (3) 下列语句中有错误的是:②和③ - ② `clz3=Rectangle.class;` 错误,因为`clz3`被声明为`Class<Polygon>`,只能指向`Polygon`类,不能指向其子类`Rectangle`。 - ③ `clz4=GeometricObject.class;` 错误,因为`clz4`被声明为`Class<? extends Polygon>`,只能指向`Polygon`及其子类,而`GeometricObject`是它们的父类。 3. 下面五条语句中,错误的是:② 和 ③ - ② 的错误原因已在上文解释,`clz3`不能指向`Rectangle.class`。 - ③ 的错误原因同样在上文解释,`clz4`不能指向`GeometricObject.class`,因为它只能指向`Polygon`或其子类。 通过这些练习题,学生可以巩固对Java中类的层次结构、类型引用、泛型限制以及类信息获取等核心概念的理解。在实际编程中,掌握这些知识对于编写健壮、可扩展的代码至关重要。