1. 1 package com.bytezero.supertest3;
  2. 2
  3. 3 /**
  4. 4 *
  5. 5 * @Description AccountTest类
  6. 6 * @author Bytezero·zhenglei! Email:420498246@qq.com
  7. 7 * @version
  8. 8 * @date 2021年9月20日上午9:52:27
  9. 9 * @
  10. 10 *
  11. 11 */
  12. 12 public class AccountTest
  13. 13 {
  14. 14 public static void main(String[] args) {
  15. 15
  16. 16 Account acct = new Account(1122,20000,0.045);
  17. 17
  18. 18 acct.withdraw(30000);
  19. 19 System.out.println("您的账户余额为:"+acct.getBalance());
  20. 20
  21. 21 acct.withdraw(2500);
  22. 22 System.out.println("您的账户余额为:"+acct.getBalance());
  23. 23
  24. 24 acct.deposit(3000);
  25. 25 System.out.println("您的账户余额为:"+acct.getBalance());
  26. 26
  27. 27 System.out.println("月利率为:"+(acct.getMonthlyInterest() *100) +"%");
  28. 28
  29. 29
  30. 30
  31. 31 }
  32. 32 }
  1. 1 package com.bytezero.supertest3;
  2. 2
  3. 3 public class Account
  4. 4 {
  5. 5 private int id; //账号
  6. 6 private double balance; //余额
  7. 7 private double annualInterestRate; //年利率
  8. 8
  9. 9 //构造器
  10. 10 public Account(int id, double balance, double annualInterestRate)
  11. 11 {
  12. 12 super();
  13. 13 this.id = id;
  14. 14 this.balance = balance;
  15. 15 this.annualInterestRate = annualInterestRate;
  16. 16 }
  17. 17
  18. 18 //get set
  19. 19
  20. 20 public int getId()
  21. 21 {
  22. 22 return id;
  23. 23 }
  24. 24 public void setId(int id)
  25. 25 {
  26. 26 this.id = id;
  27. 27 }
  28. 28
  29. 29 public double getBalance()
  30. 30 {
  31. 31 return balance;
  32. 32 }
  33. 33
  34. 34 public void setBalance(double balance)
  35. 35 {
  36. 36 this.balance = balance;
  37. 37 }
  38. 38
  39. 39 public double getAnnualInterestRate()
  40. 40 {
  41. 41 return annualInterestRate;
  42. 42 }
  43. 43
  44. 44 public void setAnnualInterestRate(double annualInterestRate)
  45. 45 {
  46. 46 this.annualInterestRate = annualInterestRate;
  47. 47 }
  48. 48
  49. 49 //返回月利率
  50. 50 public double getMonthlyInterest()
  51. 51 {
  52. 52 return annualInterestRate / 12;
  53. 53 }
  54. 54
  55. 55 //取钱
  56. 56 public void withdraw(double amount)
  57. 57 {
  58. 58 if(balance >= amount)
  59. 59 {
  60. 60 balance -= amount;
  61. 61 return;
  62. 62 }
  63. 63 System.out.println("余额不足!");
  64. 64 }
  65. 65
  66. 66
  67. 67 //存钱
  68. 68 public void deposit(double amount)
  69. 69 {
  70. 70 if(amount > 0)
  71. 71 {
  72. 72 balance += amount;
  73. 73 }
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79 }
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84 }

  1. 1 package com.bytezero.supertest3;
  2. 2
  3. 3 /**
  4. 4 *
  5. 5 * @Description
  6. 6 * @author Bytezero·zhenglei! Email:420498246@qq.com
  7. 7 * @version
  8. 8 * @date 2021年9月20日上午11:08:11
  9. 9 * @
  10. 10 *
  11. 11 */
  12. 12 public class CheckAccountTest
  13. 13 {
  14. 14 public static void main(String[] args)
  15. 15 {
  16. 16 CheckAccount acct = new CheckAccount(1122,20000,0.045,5000);
  17. 17
  18. 18 acct.withdraw(5000);
  19. 19 System.out.println("您的账户余额为:"+ acct.getBalance());
  20. 20 System.out.println("您的可透支额度为:"+acct.getOverdraft());
  21. 21
  22. 22 acct.withdraw(18000);
  23. 23 System.out.println("您的账户余额为:"+ acct.getBalance());
  24. 24 System.out.println("您的可透支额度为:"+acct.getOverdraft());
  25. 25
  26. 26 acct.withdraw(3000);
  27. 27 System.out.println("您的账户余额为:"+ acct.getBalance());
  28. 28 System.out.println("您的可透支额度为:"+acct.getOverdraft());
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33 }
  34. 34 }
  1. 1 package com.bytezero.supertest3;
  2. 2
  3. 3 /*
  4. 4 *
  5. 5 *
  6. 6 */
  7. 7 public class CheckAccount extends Account
  8. 8 {
  9. 9 private double overdraft; //可透支的限额
  10. 10
  11. 11
  12. 12
  13. 13 public CheckAccount(int id, double balance, double annualInterestRate,double overdraft)
  14. 14 {
  15. 15 super(id, balance, annualInterestRate);
  16. 16 this.overdraft = overdraft;
  17. 17 }
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22 public double getOverdraft() {
  23. 23 return overdraft;
  24. 24 }
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29 public void setOverdraft(double overdraft) {
  30. 30 this.overdraft = overdraft;
  31. 31 }
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36 @Override
  37. 37 public void withdraw(double amount)
  38. 38 {
  39. 39 if(getBalance() >= amount) //余额足够
  40. 40 {
  41. 41 //方式一
  42. 42 //setBalance(getBalance() - amount);
  43. 43
  44. 44 //方式二
  45. 45 super.withdraw(amount);
  46. 46 //方式三
  47. 47 //可以将父类的 private double balance; //余额 改为
  48. 48 //protected double balance
  49. 49
  50. 50
  51. 51
  52. 52 }
  53. 53 //余额不够 透支额度 + 余额消费
  54. 54 else if(overdraft >=( amount - getBalance()))
  55. 55 {
  56. 56 overdraft -= (amount - getBalance());
  57. 57
  58. 58 //setBalance(0);
  59. 59 //或者
  60. 60 super.withdraw(getBalance());
  61. 61
  62. 62 }
  63. 63 else
  64. 64 {
  65. 65 System.out.println("超过可透支限额!");
  66. 66 }
  67. 67
  68. 68 }
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75 }

Java 小案例+super使用的更多相关文章

  1. Java小案例(行星移动)

    Java小案例 行星移动:参考:三百集 使用软件:idea2017,java 1,图片集:这里  (idea图片源放在target目录下,才能访问到),建议从小往上看... 2,定义MyFrame p ...

  2. Java小案例-(逃离迷宫)

    Java小案例-(逃离迷宫) 一,迷宫需求描述: 1,用户输入迷宫图(限制方形):字母1位墙,0为通,e为出口,m为入口,*为已访问的位置,用外围1围住迷宫 2,运行轨迹右,左,下,上 3,判断该迷宫 ...

  3. 《java入门第一季》之类小案例(模拟用户登录)

    首先是做一个用户登录的小案例.在此基础上加入其它逻辑. import java.util.Scanner; /* * 模拟登录,给三次机会,并提示还有几次.如果登录成功,就可以玩猜数字小游戏了. * ...

  4. Session与Cookie的原理以及使用小案例>从零开始学JAVA系列

    目录 Session与Cookie的原理以及使用小案例 Cookie和Session所解决的问题 Session与Cookie的原理 Cookie的原理 Cookie的失效时机 小提示 Session ...

  5. 《java入门第一季》之Character类小案例

    /*  * Character 类在对象中包装一个基本类型 char 的值  * 此外,该类提供了几种方法,以确定字符的类别小写字母,数字,等等,并将字符从大写转换成小写,反之亦然  * */ 下面通 ...

  6. Session小案例------完成用户登录

    Session小案例------完成用户登录     在项目开发中,用户登陆功能再平常只是啦,当用户完毕username和password校验后.进入主界面,须要在主界面中显示用户的信息,此时用ses ...

  7. 广播小案例-监听系统网络状态 --Android开发

    本例通过广播实现简单的监听系统网络状态改变的小案例. 1.案例效果演示 当手机连网后,系统提示“已连接网络”, 当手机断网后,系统提示“当前网络不可用”. 2.案例实现 在主活动中动态注册广播,然后写 ...

  8. Java 实验案例(多态)

    实验任务 任务一:图形面积周长计算小程序 任务二:饲养员喂养动物程序 实验内容: 任务一: 图形面积周长计算 任务目的: 掌握多态的含义及应用场合 掌握上转型对象和多态的实现 掌握abstract关键 ...

  9. Cookie小案例-----记住浏览过的商品记录

    Cookie小案例------记住浏览过的商品记录 我们知道,这个功能在电商项目中非经常见.这里处理请求和页面显示都是由servlet实现,主要是为了体现cookie的作用, 实现功能例如以下: 1, ...

  10. session的两个小案例

    学完了session,写两个小案例加深一下对session的巩固. 1. 用户登陆案例 登陆html页面提交后,将参数带给处理登陆的servlet,该servlet将获得登陆的用户名和密码,并将这些信 ...

随机推荐

  1. 每日一道Java面试题:Java是值传递还是引用传递?

    写在开头 Java是值传递还是引用传递?这个问题几乎100%的出现在了各大主流Java面试题中,知识点很小,但很考验面试者对于Java运行的理解,今晚趁着生产投产的空子,过来小聊一下. 实参与形参 所 ...

  2. 官宣!Python 开发者大会(PyCon US)提供在线订阅啦!

    今年一开年,我们就遇到了一个天大的"黑天鹅"事件,如今它已蔓延成为了一个全球性事件,而且似乎还要持续一段挺长的时间. 各行各业的人们都受到了牵连,各种计划和安排也要被迫作出调整.今 ...

  3. JS ----- Javascript中apply、call、bind

    这篇文章实在是很难下笔,因为网上相关文章不胜枚举. 巧合的是前些天看到阮老师的一篇文章的一句话: "对我来说,博客首先是一种知识管理工具,其次才是传播工具.我的技术文章,主要用来整理我还不懂 ...

  4. gin启动https支持

    gin是一个使用Go语言开发的Web框架,具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,支持中间件等. 在工作中有时候需要支持https服务,gin可以通过中间件的方式来提供对https的支 ...

  5. 【深度学习项目五】:利用LSTM网络进行情感分析(NLP)

    相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别](https://blog.csdn.net/sinat_39620217/article/details/116749255?sp ...

  6. Asp .Net Core 系列:Asp .Net Core 配置 System.Text.Json

    目录 简介 Asp .Net Core 如何配置 System.Text.Json 所有配置 全局配置 对比 Newtonsoft.Json 无实体类型下操作 Json 自定义转换器 处理 Dynam ...

  7. html的input type=file

    文件上传:https://www.zhangxinxu.com/wordpress/2015/11/html-input-type-file/ some与every的使用:https://blog.c ...

  8. 面试谈薪4点博弈策略,将20k谈到28k

    薪资谈判本质上是一种博弈,无论是表面谈得好还是实质上谈得好,都需要掌握一些策略 面试薪资怎么谈,您目前的薪资是20k,如果您想要提高到28k,那么请花两分钟看完以下内容.薪资谈判本质上是一种博弈,无论 ...

  9. 【栈和队列】栈和队列的相互实现OJ练习【力扣-232、力扣-225】超详细的保姆级别解释

    [栈和队列]栈和队列的相互实现OJ练习[力扣-232.力扣-225]超详细的保姆级别解释 先赞后看好习惯 打字不容易,这都是很用心做的,希望得到支持你 大家的点赞和支持对于我来说是一种非常重要的动力 ...

  10. Odoo—货运管理—主表获取明细表数据计算结果

    在开发货运管理模块的时候,用到了两张表:主表[waybill]和明细表[waybill.detail],主表存放运单主体信息,明细表存放运单货物信息,如下图所示. 上图中红色方框标记的是明细表中行内的 ...