|
1、现实世界的对象包含________和________。
2、软件对象的状态存储在________中。
3、软件对象的行为通过________暴露给外界。
4、将内部数据隐藏,不让外部世界看到,并且访问它们只能通过公开声明的方法,这被称为数据________。
5、软件对象的蓝本被称为________。
6、常用的行为可以定义在________中,并可以使用________关键字继承在________中。
7、一个没有任何执行部分的方法的集合称为________。
8、按功能组织类和接口的名空间(namespace)称为________。
9、API代表________。
10、为每个现实世界中的对象创建新类,如果忘记语法,请参见本章的Bicycle类。
11、对上面创建的每一个新类,创建定义行为的接口,然后要求在类中implement它。忽略一两个方法并且试着便宜,会出现什么错误?
12、考虑下面的类:
public class IdentifyMyParts {
public static int x = 7;
public int y = 3;
}
a. 类变量是什么? b. 实例变量是什么? c. 下面代码的输出是什么?
IdentifyMyParts a = new IdentifyMyParts();
IdentifyMyParts b = new IdentifyMyParts();
a.y = 5;
b.y = 6;
IdentifyMyParts.x = 1;
b.x = 2;
System.out.println("a.y = " + a.y);
System.out.println("b.y = " + b.y);
System.out.println("IdentifyMyParts.x = " + a.x);
System.out.println("b.x = " + b.x);
13、写一个card类,它的实例表示一个从一副52张扑克牌(去掉大小王)中抽出的单张扑克牌。扑克牌有两个属性:rank(点数)和suit(花色)。保存好你的解答,因为你今后将以枚举类型重写本题。
提示:可以使用assert语句检查赋值,如下:
assert (要检查的boolean表达式);
如果boolean是false,就会得到一条错误信息,例如(假设ACE = "Ace"):
assert toString(ACE) == "Ace";
应该返回true,所以无错误信息。 如果使用assert语句,这样运行程序时必须加ea标志:
java -ea YourProgram.class
14、写一个类,它的实例表示一副完整扑克牌的deck类(但不包括大小王),同样需要保存好解答。
15、写一个小程序检查你的deck和card类。程序可以比较简单,例如创建一副扑克牌并显示它的牌。
16、下面的程序有何错误?
public class SomethingIsWrong {
public static void main(String[ ] args) {
Rectangle myRect;
myRect.width = 40;
myRect.height = 50;
System.out.println("myRect's area is " + myRect.area());
}
}
17、下面的代码创建了一个Point对象和一个Rectangle对象,在代码执行后有多少对这些对象的引用?这两个对象都能被垃圾收集器回收吗?
...
Point point = new Point(2,4);
Rectangle rectangle = new Rectangle(point, 20, 20);
point = null;
...
18、程序是如何destroy它创建的对象的?
19、修改第16题中的SomethingIsWrong程序。
20、根据下面的NumberHolder类,写一些代码创建该类的一个实例,并初始化它的两个成员变量,然后显示每个成员变量的值。
public class NumberHolder {
public int anInt;
public float aFloat;
}
上一篇:3.8.3 classpath变量及设置(2) 下一篇:3.9.2 问题和练习答案(1)
|