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)提供文档注释
答:/**
* 构造一个具有给定初始余额的银行账户
* @param accountNumber 该账户的账号
* @param initialBalance 该账户的初始余额
*/
6.为什么下列文档注释有问题?
/**
每个账户都有一个账号
@return 该账户的账号
*/
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的显式参数