Java程序设计上机习题3.pdf_第1页
Java程序设计上机习题3.pdf_第2页
Java程序设计上机习题3.pdf_第3页
Java程序设计上机习题3.pdf_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java 程序设计上机习题程序设计上机习题 2012 年 5 月 19 日 第三次 2012 年 5 月 19 日 第三次 责任教师 刘毅 责任教师 刘毅 注 本练习是正在开发的银行项目的一部分 请先在注 本练习是正在开发的银行项目的一部分 请先在 Netbeans 中创建名为中创建名为 BankPrj 的银行项目 的银行项目 一 创建银行账户子类一 创建银行账户子类 在本练习中 你将创建 2 个 Account 类的子类 分别是 SavingsAccount 储蓄帐户 类和 CheckingAccount 支票帐户 类 在本练习中 你将创建 2 个 Account 类的子类 分别是 SavingsAccount 储蓄帐户 类和 CheckingAccount 支票帐户 类 储蓄帐户的利息计算公式是 储蓄帐户的利息计算公式是 balance balance interestRate balance 支票帐户允许一定数额的透支 支票帐户允许一定数额的透支 1 1 把 01 StarterFiles 目录中的源代码 按其给定的包结构导入到 BankPrj 项目中 2 把 01 StarterFiles 目录中的源代码 按其给定的包结构导入到 BankPrj 项目中 2 修改 com mybank domain 包中的 Account 类 使之符合 UML 中的定义 修改 com mybank domain 包中的 Account 类 使之符合 UML 中的定义 balance 属性的访问控制改成 protected balance 属性的访问控制改成 protected protected double balance 构造函数的访问控制改成 protected 构造函数的访问控制改成 protected protected Account double initBalance balance initBalance 3 3 创建创建SavingsAccount类 如下图所示 类 如下图所示 4 4 创建创建CheckingAccount类 如下图所示 类 如下图所示 请思考请思考 CheckingAccount类中 类中 overdraftAmount 属性有何作用 overdraftAmount 属性有何作用 为何要调用父类的构造函数 如何调用 为何要调用父类的构造函数 如何调用 为何有 2 个构造函数 2 个构造函数在功能上有何不同 为何有 2 个构造函数 2 个构造函数在功能上有何不同 为何要对父类的取款方法进行改写 如何改写 为何要对父类的取款方法进行改写 如何改写 5 5 从 01 resources 目录中导入 TestBanking 类 导入时要注意该类所属的包名 编译并执行该 类 观察执行结果 从 01 resources 目录中导入 TestBanking 类 导入时要注意该类所属的包名 编译并执行该 类 观察执行结果 二 为每个用户创建多种类型的账户二 为每个用户创建多种类型的账户 在本练习中 您将创建一个异类账户数组来实现顾客类与账户类之间的聚合关系 即一个用户可以拥有多 个不同类型的账户 在本练习中 您将创建一个异类账户数组来实现顾客类与账户类之间的聚合关系 即一个用户可以拥有多 个不同类型的账户 1 1 把 02 StarterFiles 目录中的源代码 按其给定的包结构导入到 BankPrj 项目中 2 把 02 StarterFiles 目录中的源代码 按其给定的包结构导入到 BankPrj 项目中 2 修改 02 StarterFiles src com mybank domain 目录中的 Customer 类 使之符合 UML 中的定 义 修改 02 StarterFiles src com mybank domain 目录中的 Customer 类 使之符合 UML 中的定 义 新增以下 2 个属性 删除原来的 account 属性 新增以下 2 个属性 删除原来的 account 属性 private Account accounts 使用数组来实现一个客户可以有多个账户使用数组来实现一个客户可以有多个账户 private int numberOfAccounts 账户个数账户个数 修改原构造函数 对上述新增属性进行初始化 修改原构造函数 对上述新增属性进行初始化 public Customer String f String l firstName f lastName l initialize accounts array accounts new Account 10 numberOfAccounts 0 新增 addAccount 方法 删除原来的 setAccount 方法 新增 addAccount 方法 删除原来的 setAccount 方法 public void addAccount Account acct int i numberOfAccounts accounts i acct 新增 getNumOfAccounts 方法 用来获取新增 getNumOfAccounts 方法 用来获取该客户的账户个数该客户的账户个数 public int getNumOfAccounts return numberOfAccounts 删除原来的 getAccount 方法 再重新编一个 getAccount 方法 根据标号获取在账户删除原来的 getAccount 方法 再重新编一个 getAccount 方法 根据标号获取在账户 public Account getAccount int account index return accounts account index 3 3 导入并修改 CustomerReport 类 导入并修改 CustomerReport 类 从 02 resources 导入 CustomerReport 类 导入时要注意该类所属的包名 从 02 resources 导入 CustomerReport 类 导入时要注意该类所属的包名 在该类的 部分添加如下代码 用来设置账户类型 体会在该类的 部分添加如下代码 用来设置账户类型 体会instanceof 的功 能 的功 能 if account instanceof SavingsAccount account type Savings Account else if account instanceof CheckingAccount account type Checking Account else account type Unknown Account Type 打印账户余额和账户类型 打印账户余额和账户类型 System out println account type current balance is account getBalance 4 4 从 02 resources 中导入 TestReport 类 导入时要注意该类所属的包名 观察执行结果 从 02 resources 中导入 TestReport 类 导入时要注意该类所属的包名 观察执行结果 三 使用静态成员三 使用静态成员 在本练习中 您将使用静态成员来解决原来银行项目所存在的问题 原来银行项目中 Bank 类是一个表示 银行的普通类 其中含有银行客户 这种设计导致可以实例化多个银行实例 每个银行实例拥有不同的客 户群 为了解决这个问题 开发团队决定把 Bank 类修改成为一个工具类 工具类的所有属性和方法都是 静态的 修改任务由你完成 在本练习中 您将使用静态成员来解决原来银行项目所存在的问题 原来银行项目中 Bank 类是一个表示 银行的普通类 其中含有银行客户 这种设计导致可以实例化多个银行实例 每个银行实例拥有不同的客 户群 为了解决这个问题 开发团队决定把 Bank 类修改成为一个工具类 工具类的所有属性和方法都是 静态的 修改任务由你完成 1 1 把 03 StarterFiles 目录中的源代码 按其给定的包结构导入到 BankPrj 项目中 2 把 03 StarterFiles 目录中的源代码 按其给定的包结构导入到 BankPrj 项目中 2 修改 03 StarterFiles src com mybank domain 目录中的 Bank 类 使之符合 UML 中的定义 修改 03 StarterFiles src com mybank domain 目录中的 Bank 类 使之符合 UML 中的定义 把所有属性都改成静态 把所有属性都改成静态 private static Customer customers private static int numberOfCustomers 创建一个静态初始化块 对静态属性进行初始化 创建一个静态初始化块 对静态属性进行初始化 static customers new Customer 10 numberOfCustomers 0 将原来的构造函数变成私有 并删除原构造体中的内容 请思考这样做的目的 将原来的构造函数变成私有 并删除原构造体中的内容 请思考这样做的目的 private Bank this constructor should never be called 将原来的方法都变成静态方法 注意静态方法中使用的成员变量都是静态的 将原来的方法都变成静态方法 注意静态方法中使用的成员变量都是静态的 public static void addCustomer String f String l int i numberOfCustomers customers i new Customer f l public static int getNumOfCustomers return numberOfCustomers public static Customer getCustomer int customer index return customers customer index 3 3 修改 03 StarterFiles src com mybank report 目录中的 CustomerReport 类 修改 03 StarterFiles src com mybank report 目录中的 CustomerReport 类 删除 bank 属性 删除 getBank 和 setBank 方法 删除 bank 属性 删除 getBank 和 setBank 方法 修改修改 generateReport 方法 调用 Bank 类的静态方法 如何调用静态方法 generateReport 方法 调用 Bank 类的静态方法 如何调用静态方法 public void generateReport Print report header System out println CUSTOMERS REPORT System out println For each customer for int cust idx 0 cust idx Bank getNumOfCustomers cust idx Customer customer Bank g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论