《Java语言程序设计》(基础篇原书第10版)第九章复习题答案

第九章
9.1:类为对象定义属性和行为,对象从类创建。
9.2:public class ClassName {

}

9.3:ClassName v;
9.4:new ClassName();
9.5:构造函数是使用新运算符创建对象是调用的特殊的方法,构造函数没有返回类型,甚至没有空类型,并且构造函数的方法名与类名一致。
9.6:类只有在类不定义任何构造函数是才具有默认构造函数。
9.7:成员访问操作符( .)用于访问数据字段或从对象调用方法。
9.8:匿名对象是没有引用它的引用变量的对象。
9.9:当使用空引用变量访问对象的成员时,会发生NullPointerException。
9.10:数组时一个对象。数组可以包含对象类型的元素。数组元素的默认值数值是0,布尔值为false,char为“u0000”,对象元素类型为空。
9.11:
a)第三行改为 ShowErrors t = new ShowErrors();
b) x()不是ShowErrors类中的方法。
c)程序可以编译,但是它会有运行错误,因为当执行println语句时,变量c是空的。
d)程序有编译错误,因为c类没有带参数的构造函数。
9.12:程序没有编译,因为在类测试中使用了新的A(),但是A类没有默认的构造函数。
9.13:输出false
9.14:使用日期的No-Arg构造函数来创建日期,以显示日期的字符串表示形式。
9.15:使用它的构造函数Point2D(x,y)在(x,y)处创建Point2D对象,使用p1.距离(P2)获得p1和p2之间的距离。使用p1.中间点(p2)获得p1和p2之间的中点。
9.16:日期在java.util包中,随机在java.util包中,Point2D在javafx.geometry包中,System和Math在java.lang包中。
9.17:
System.out.println(f.i); 正确
System.out.println(f.s); 正确
f .imethod(); 正确
f .smethod(); 正确
System.out.println(F.i); 错误
System.out .println(F.s); 正确
F.imethod(); 错误
F.smethod(); 正确
9.18:在main和factorial方法添加静态,因为这两个方法不需要引用任何实例对象或调用Test类中的任何实例方法。
9.19:不能从静态方法中调用实例方法或引用实例变量。可以从实例方法中调用静态方法或引用静态变量。C是一个实例变量,它不能从静态方法method2中被调用。
9.20:访问器方法用于检索私有数据值,Mutator方法用于更改私有数据值。访问器方法的命名规定为非布尔值的getDateFieldName()和布尔值的isDataFieldName(),Mutator方法的命名规定为setDataFieldName(Value)。
9.21:数据域封装的好处:保护数据;易于维护。
9.22:不会导致问题。
9.23:java使用“按值传递”将参赛传递给方法,当将基本类型的变量传递给方法时,该变量在方法完成后保持不变。但是将引用类型的变量传递给方法时,实际是将地址传递给了方法,是的形式参数和实际参数都指向同一个变量,引用同一个对象。
输出结果:Count is 101;
time is 0
9.24:输出结果为:
After swap1: circle1 = 1.0 circle2 = 2.0
After swap2: circle1 = 2.0 circle1 = 1.0
9.25:输出结果为:
a[0] = 1 a[1] = 2
a[0] = 2 a[1] = 1
e1 = 2 e1 = 1
t1’s i = 2 t1’s j = 1
t1’s i = 2 t1’s j = 1
9.26:输出结果为:
a)null
b)1234567
c)7654321
d)1234567
9.27:第四行打印NULL,因为data【0】是NULL。第五行导致NullPointException,因为它从NULL引用中调用toString()方法。
9.28: 如果类中仅包含私有数据域并且没有设置 set 方法,该类没有不可变,它还必须包含不会返回对可变数据字段对象的引用的GET方法。
9.29: 如果类中的所有数据域是私有的基本数据类型,并且类中没有包含任何 set 方法,该类是不可变的。
9.30:该类可变,因为值是数组,为引用类型。
9.31:输出结果为:
i + j is 23
k is 2
j is 0
9.32:this指的是对象本身
9.33:第五行和第六行交换,第10行和第14行应该改为 this.p = p;
9.34:Test.id = 45,是错误的,因为id是实例变量,不能从类中访问。

你可能感兴趣的:(《Java语言程序设计》(基础篇原书第10版)第九章复习题答案)