天天看点

BigJava 第三章 自测题 汇总

1. 在第一章和第二章中,你已使用System.out作为黑盒,以使输出显示在屏幕上。谁设计并实现了System.out?

答:设计Java类库的程序设计者

2. 假设你正在一家公司设计并生产个人金融软件。要求你设计一个表示银行账户的类。谁将是该类的用户?

答:实现金融软件的其他程序员n

3. 怎样使用公有接口的方法清空harryChecking银行账户呢?

答:harryChecking.withdraw(harryChecking.getBalance());

4. 假设你想得到一个功能更强大的银行账户,除余额外还记录账号。应如何来修改公有接口以适应这种功能的增强呢?

答:在构造函数中增加一个accountNumber参数,同时增加一个getAccountNumber方法,这里不需要setAccountNumber--因为一个账号创建后不会改变。

5. 假设要增强BankAccount类,使每个银行账户均有一个账号。请为构造函数

public BankAccount(int accountNumber,double initialBalance)提供文档注释

答:

6.为什么下列文档注释有问题?

public int getAccountNumber()

答:方法注释的第一句话应该描述这个方法

7. 假设要将BankAccount类修改为每个银行账户均有一个账号。这个改动对实例字段会产生怎样的影响呢?

答:该类需要增加一个实例字段

private int accountNumber;

8. Rectangle的实例字段是什么?

答:width,height,x,y

9.如何实现Rectangle类中的getWidth方法

答:略

10.如何实现Rectangle类的translate方法

答:略

11.在运行BankAccountTester程序时,构造了多少个BankAccount类的对象和多少个BankAccountTester

答:1个BankAccout对象,没有BankAccontTester对象

12.为什么在允许交互测试的环境中,如BlueJ中,不需要BankAccountTester类。

答:在这些环境中,你可以发出交互命令来构建BankAccount对象,调用方法并显示它们的返回值

13.局部变量和参数变量的共同点是什么?它们的根本区别是什么?

答:两类变量都属于方法,它们在调用方法时产生,在方法结束时消亡。与其初始化不同。参数变量用初始值初始化,局部变量必须显式初始化。

14.前一阵在执行BankAccountTester程序时,创建了多少个实例字段、局部变量和参数变量?它们的名字是什么?

答:一个叫作balance的实例字段。三个局部变量,一个命名为harryschecking,两个命名为newBalance(在deposit和withdraw方法中);两个参数变量,均命名为amount

15.在BankAccount类的withdraw方法中有多少个显式参数和隐式参数?它们的名字和类型是什么?

答:一个隐式参数this,类型是BankAccount,一个显式参数amount,类型是double

16.在deposit方法中,this.amount的含义是什么?或者,如果该表达式没有意义,阐明其原因。

答:这是一个不合法的表达式

17.在BankAccountTester类中main方法有多少显式参数和隐式参数?它们的名字是什么?

答:没有隐式参数,有一个名为args的显式参数