java语言程序设计基础篇习题_复习题_第九章_个人答案

java语言程序设计基础篇习题_复习题_第九章

    • 9.1 描述对象和它的定义类之间的关系。
    • 9.2 如何定义一个类?
    • 9.3 如何声明一个对象引用变量?
    • 9.5 构造方法和普通方法之间的区别是什么?
    • 9.6 什么时候类将有一个默认构造方法?
    • 9.7 哪个操作符用于访问对象的数据域或者调用对象的方法?
    • 9.8 什么是匿名对象?
    • 9.9 什么是NullPointerException?
    • 9.10 数组是对象还是基本类型值?数组可以包含对象类型的元素吗?描述数组元素的默认值。
    • 9.11 下面每个程序中有什么错误?
    • 9.12 下面代码有什么错误?
    • 9.13 下面代码的输出是什么?
    • 9.14 如何为当前时间创建一个 Date? 如何显示当前时间?
    • 9.15 如何创建一个 Point2D? 假设pi 和 p2 是 Point2D 的两个实例,如何获得两点之间的距离?
    • 9.16 哪些包包含类 Date、Random、Point2D、System以及 Math?
    • 9.17 假设 F类在 a中定义,f:是 F的一个实例, 那么 b中的哪些语句是正确的?
    • 9.18 如果合适的话,在出现? 的位置添加 static关键字。
    • 9.19 能否从静态方法中调用实例方法或引用一个实例变量?能否从实例方法中调用静态方法或引用一个静态变量? 下面代码错在哪里?
    • 9.20 什么是访问器方法?什么是修改器方法?访问器方法和修改器方法的命名习惯是什么?
    • 9.21 数据域封装的优点是什么?
    • 9.22 在下面的代码中, Circle 类中的 radius 是私有的,而 myCircle 是Circle 类的一个对象, 下面髙亮的代码会导致什么问题吗?如果有问题的话, 解释为什么。
    • 9.23 描述传递基本类型参数和传递引用类型参数的区别,并给出下面程序的输出:
    • 9.24 显示下面程序的输出:
    • 9.27 下面的代码有什么错误?
    • 9.28 如果类中仅包含私有数据域并且没有设置 set 方法.该类可以改变吗?
    • 9.29 如果类中的所有数据域是私有的基本数据类型, 并且类中没有包含任何 set 方法, 该类可以改变吗?
    • 9.30 下面的类可以改变吗?

9.1 描述对象和它的定义类之间的关系。

答:对象(object)代表现实世界中可以明确标识的一个实体。类是一个模板、蓝本或者说是合约,用来定义对象的数据域是什么以及方法是做什么的。一个对象是类的一个实例。 可以从一个类中创建多个实例。就好比印钞票,类就是模子,对象对视印出来的一张张钞票。

9.2 如何定义一个类?

java语言程序设计基础篇习题_复习题_第九章_个人答案_第1张图片

9.3 如何声明一个对象引用变量?

答:先定义好类,然后以类名声明变量。

9.5 构造方法和普通方法之间的区别是什么?

答:

  • 构造方法必须具备和所在类相同的名字。
  • 构造方法没有返回值类型,甚至连 void也没有。
  • 构造方法是在创建一个对象使用new 操作符时调用的。 构造方法的作用是初始化对象。

9.6 什么时候类将有一个默认构造方法?

答:当且仅当类中没有明确定义任何构造方法时才会自动提供。

9.7 哪个操作符用于访问对象的数据域或者调用对象的方法?

答:“.”

9.8 什么是匿名对象?

答:new声明对象的时候,没有引用变量。直接调用实例方法的方式。这个对象就是匿名对象

9.9 什么是NullPointerException?

答:当调用值为 null的引用变量上的方法时会发生此类异常。 在通过引用变量调用一个方法之前,确保先将对象引用賦值给这个变量。

9.10 数组是对象还是基本类型值?数组可以包含对象类型的元素吗?描述数组元素的默认值。

答:数组是对象,可以包含,就是该类型或对象的初始值

9.11 下面每个程序中有什么错误?

java语言程序设计基础篇习题_复习题_第九章_个人答案_第2张图片
答:

  • a.ShowErrors类本身没有构造函数,无法构造
  • b.类中没有x()实例方法,无法调用
  • c.c一开始声明变量,却没有声明应用变量,所以c的值为null,无法调用方法
  • d.通a

9.12 下面代码有什么错误?

java语言程序设计基础篇习题_复习题_第九章_个人答案_第3张图片
java语言程序设计基础篇习题_复习题_第九章_个人答案_第4张图片
答:第3行代码创建了一个对象,但是String s没有任何值,无法构建对象

9.13 下面代码的输出是什么?

java语言程序设计基础篇习题_复习题_第九章_个人答案_第5张图片
答:main函数声明自己所在类,创建了对象,初始化了x,boolean初始化的值为false,所以打印的为false

9.14 如何为当前时间创建一个 Date? 如何显示当前时间?

答:

Date date = new Date();
date.getTime();

9.15 如何创建一个 Point2D? 假设pi 和 p2 是 Point2D 的两个实例,如何获得两点之间的距离?

public class Test {
	public static void main(String[] args) {
		Point2D p1 = new Point(1,0);
		Point2D p2 = new Point(0,1);
		System.out.println(p1.distance(p2));
	}
}

9.16 哪些包包含类 Date、Random、Point2D、System以及 Math?

9.17 假设 F类在 a中定义,f:是 F的一个实例, 那么 b中的哪些语句是正确的?

java语言程序设计基础篇习题_复习题_第九章_个人答案_第6张图片
答:f是实例,所以前四个都正确;F为对象,则只能访问静态变量和方法,所以第六句和第八句正确。第五句和第七句错误。

9.18 如果合适的话,在出现? 的位置添加 static关键字。

java语言程序设计基础篇习题_复习题_第九章_个人答案_第7张图片
答:第一处和第二处

9.19 能否从静态方法中调用实例方法或引用一个实例变量?能否从实例方法中调用静态方法或引用一个静态变量? 下面代码错在哪里?

java语言程序设计基础篇习题_复习题_第九章_个人答案_第8张图片
答:静态方法中不能调用实例方法,实例方法可以调用静态方法,上面代码就是静态方法调用了实例方法。实例方法必须通过创建对象,然后通过对象来调用响应的实例方法。

9.20 什么是访问器方法?什么是修改器方法?访问器方法和修改器方法的命名习惯是什么?

答:访问器方法就是访问类中私有数据域的方法,修改器方法就是修改类中私有数据域值的方法。访问器get+数据域名,修改器set+数据域名

9.21 数据域封装的优点是什么?

答:便于维护,不易被篡改

9.22 在下面的代码中, Circle 类中的 radius 是私有的,而 myCircle 是Circle 类的一个对象, 下面髙亮的代码会导致什么问题吗?如果有问题的话, 解释为什么。

java语言程序设计基础篇习题_复习题_第九章_个人答案_第9张图片
答:无法获取到radius。实例无法获取到类的私有数据域

9.23 描述传递基本类型参数和传递引用类型参数的区别,并给出下面程序的输出:

java语言程序设计基础篇习题_复习题_第九章_个人答案_第10张图片
答:基本类型传递的是值,引用型传递的是指针。count为101,times为0

9.24 显示下面程序的输出:

java语言程序设计基础篇习题_复习题_第九章_个人答案_第11张图片
答:第一次交换了,第二次没有交换。第一次传入的是引用指针,第二次传入的是值。25题和26题类似。

9.27 下面的代码有什么错误?

java语言程序设计基础篇习题_复习题_第九章_个人答案_第12张图片
答:对象数组初始化的时候,将每个对象引用值都初始化为null。dates[0],对应的是null,无法toString

9.28 如果类中仅包含私有数据域并且没有设置 set 方法.该类可以改变吗?

答:可以改变,这种类不是为不可变对象。还可以通过引用的方式进行修改

9.29 如果类中的所有数据域是私有的基本数据类型, 并且类中没有包含任何 set 方法, 该类可以改变吗?

答:不可以,没有引用类型对象数据类型。

9.30 下面的类可以改变吗?

java语言程序设计基础篇习题_复习题_第九章_个人答案_第13张图片
答:可以改变,可以通过get获取到values,然后赋值

你可能感兴趣的:(练习)