续标题:创建支票账户checking account和储蓄账户saving account两个子类。支票账户有一个透支限定额,但储蓄账户不能透支

  • 题目(续)
  • 题目中提到的编程练习题9.7:以下代码直接利用即可
  • Test03_checking_account:支票账户
  • Test03_saving_account
  • Test03:测试程序(创建三个对象并调用toString方法)
  • 总UML图

题目(续)

画出这些类的UML图并实现这些类。编写一个测试程序,创建Account、SavingsAccount和CheckingAccount的对象,然后调用它们的toString()方法

题目中提到的编程练习题9.7:以下代码直接利用即可

省流助手:四个私有数据域 + 无参有参构造方法 + id balance annualInterestRate三个数据域的setter和getter方法 + dateCreated的访问器方法 + getMonthlyInterestRate方法 + getMonthlyInterest方法 + withDraw方法 + deposit方法

import java.util.Date;public class Test2_Account {// 四个私有数据域private int id = 0;private double balance = 0.0;private double annualInterestRate = 0.0;private Date dateCreated;// 无参构造方法public Test2_Account(){}// 有参构造方法public Test2_Account(int id, double balance){this.id = id;this.balance = balance;}// id balance annualInterestRate的setter和getterpublic int getId() {return id;}public void setId(int id) {this.id = id;}public double getBalance() {return balance;}public void setBalance(double balance) {this.balance = balance;}public double getAnnualInterestRate() {return annualInterestRate;}public void setAnnualInterestRate(double annualInterestRate) {this.annualInterestRate = annualInterestRate;}// dateCreated的访问器方法public Date getDateCreated(){return dateCreated;}// getMonthlyInterestRate方法public double getMonthlyInterestRate(){return annualInterestRate / 1200;}// getMonthlyInterest方法public double getMonthlyInterest(){return annualInterestRate * balance / 1200;}// withDraw方法public void withDraw(double num){if (num <= balance) balance -= num;}// deposit方法public void deposit(double num){balance += num;}@Overridepublic String toString() {return "Test03_Account{" +"id=" + id +", balance=" + balance +", annualInterestRate=" + annualInterestRate +", dateCreated=" + dateCreated +'}';}
}

本类UML图:

Test03_checking_account:支票账户

public class Test03_checking_account extends Test03_Account{public double overDraftLimit = 0;public Test03_checking_account(){}public Test03_checking_account(double overDraftLimit){this.overDraftLimit = overDraftLimit;}@Overridepublic String toString() {return "Test03_checking_account{" +"overDraftLimit=" + overDraftLimit +"} " + super.toString();}
}

Test03_saving_account

public class Test03_saving_account extends Test03_Account{private double minBalance = 0.0;
}

Test03:测试程序(创建三个对象并调用toString方法)

public class Test03 {public static void main(String[] args) {// 创建AccountTest03_Account ta = new Test03_Account();ta.toString();// 创建Savings-AccountTest03_saving_account sa = new Test03_saving_account();sa.toString();// 创建CheckingAccountTest03_checking_account ca = new Test03_checking_account();ca.toString();}
}

总UML图

Java黑皮书课后题第11章:11.3(Account类的子类)在编程练习题9.7中定义了一个Account类来对一个银行账户建模。一个账户有账号、余额、年利率、开户日期等属性,以及存款和取款等方法相关推荐

  1. Java黑皮书课后题第6章:**6.34(打印日历)编程练习题3.21使用Zeller一致性原理来计算某天是星期几,使用Zeller的算法简化程序清单6-12以获得每月开始的第一天是星期几

    6.34(打印日历)编程练习题3.21使用Zeller一致性原理来计算某天是星期几,使用Zeller的算法简化程序清单6-12以获得每月开始的第一天是星期几 题目 题目描述 编程练习题3.21的Zel ...

  2. Java黑皮书课后题第10章:*10.20(近似e)编程练习题5.26使用下面数列近似计算e(略),为了得到更好的精度,在计算中使用25位精度的BigDecimal

    10.20(近似e)编程练习题5.26使用下面数列近似计算e(略),为了得到更好的精度,在计算中使用25位精度的BigDecimal 题目 首次尝试 代码 运行 关于揪bug 第二次尝试 代码 运行结 ...

  3. Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类

    Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类 题目 破题 代码 Test10 Test11_LinearEquat ...

  4. Java黑皮书课后题第1章:*1.11(人口估算)编写一个程序,显示未来5年的每年人口数。假设当前的人口是312 032 486,每年有365天

    Java黑皮书课后题第1章:*1.11(人口估算) 题目 题目描述 破题 代码块 方法评析 为什么print函数内的表达式不能分开 修改日志 题目 题目描述 *1.11(人口估算)编写一个程序,显示未 ...

  5. Java黑皮书课后题第1章:1.7(求π的近似值)编写程序,显示4*(1-1/3+1/5-1/7+1/9-1/11【+1/13】)

    Java黑皮书课后题第1章:1.7(求π的近似值) 题目描述 代码 代码块 评析 修改日志 题目描述 可以使用以下公式计算π: [手动空格]π=4*(1-1/3+1/5-1/7+1/9-1/11+-) ...

  6. Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString()方法分别显示上述日期

    Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString方法分别显示上述日期 题目 代码 思路 代码 题目 代码 思路 ...

  7. Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)

    Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...

  8. Java黑皮书课后题第9章:**9.9(几何:正n边形)在一个正n边形中,所有边的长度都相同,且所有角的度数都相等(即这个多边形是等边等角的)

    Java黑皮书课后题第9章:**9.9(几何:正n边形)在一个正n边形中,所有边的长度都相同,且所有角的度数都相等(即这个多边形是等边等角的) 题目 破题 代码 Test9 Test9_Regular ...

  9. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  10. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字

    Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...

最新文章

  1. Web应用程序指纹识别工具BlindElephant
  2. Syslinux引导文件名与菜单解释
  3. 【Python基础】Pandas批量合并文件脚本,多个同名sheet也适用
  4. win7 linux 共享文件夹权限设置,samba 配置共享 win7 无权限访问
  5. 用python画动态皮卡丘_利用Python绘制萌萌哒的皮卡丘
  6. Sum in the tree
  7. php - 冒泡排序
  8. sun服务器dt消息不能被启动,Sun ONE Application Server 错误
  9. 【华为大咖分享】5.交付在云端-全云DevOps研发实践(后附PPT下载地址)
  10. SAP License:你熟悉SAP的统驭科目吗?
  11. C# async/await 使用总结
  12. 已 树莓派4b ros 系统 网盘_树莓派推出8GB内存版4B 搭载64位操作系统
  13. vue-cli4引入Element Plus 插件
  14. [POI2007]立方体大作战tet
  15. js中onsubmit用法
  16. ObjectARX类库简介
  17. 网络爬虫 测试代理IP
  18. 实战Perl脚本测试
  19. 《乔布斯传》圈点(6)
  20. 后台只有一个接口有跨域问题

热门文章

  1. python3.7怎么设置中文_解决 Bug · Python3.7.3官方文档 简体中文 · 看云
  2. Linux 中内核级加强型火墙的管理
  3. 数据库自治服务DAS论文入选全球顶会SIGMOD,领航“数据库自动驾驶”新时代
  4. 天池读书会来啦,带你体验沉浸式读书新方式
  5. 2021年中国云原生用户调查问卷
  6. 云效故障定位研究论文被ICSE 2021 SEIP track收录
  7. 在气候灾难的时代,这些游戏正在用自己的方式去重新审视自然
  8. Linux从零开始(二、基础命令(续二)解压 tar)
  9. 如何修改Xshell默认存储路径
  10. JavaWeb第五讲 Web核心基础之HTTP协议