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

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

    使用中发现,vm-select 1.76版本,查询vm-storage的1.70版本,报以下错误: cannot execute rpcName="search_v5" on vm ...

  2. FaceFusion:探索无限创意,创造独一无二的面孔融合艺术!

    FaceFusion:探索无限创意,创造独一无二的面孔融合艺术! 它使用先进的图像处理技术,允许用户将不同的面部特征融合在一起,创造有趣和令人印象深刻的效果.这个项目的潜在应用包括娱乐.虚拟化妆和艺术 ...

  3. 【1】windows下安装OpenCV(4.3)+VS2017安装+opencv_contrib4.3.0配置

    相关文章: [1]windows下安装OpenCV(4.3)+VS2017安装+opencv_contrib4.3.0配置 [2]Visual Studio 2017同时配置OpenCV2.4 以及O ...

  4. CF1045G AI robots题解

    题目链接:洛谷 或者 CF 本题考虑转化为 cdq 分治模型 对于 cdq 分治来说,只需要考虑左边对右边的影响,那我们要考虑该怎样设置第一维度的左右对象.很显而易见的是抛开 \(q\) 限制而言,我 ...

  5. OpenGL的深度缓冲

      如果我们想要在三维空间里画两个正方形:一个红色的,一个绿色的,而且从人眼的观察角度看,绿色正方形在红色正方形的后面,最后看上去应该是这样的: 要点在于,从观察者的角度看,绿色正方形在红色正方形的后 ...

  6. NOIp 2023 游记

    咕了正好一周的 NOIp 游记,是我第一篇游记,也是一张寄往四年后不得不退役的.即将画上青春句号的自己的,包含了自己的青涩.期待与成长的信笺. Day \((-\infty, -7)\) CSP-S ...

  7. mysql 索引优化 explain,复合索引,联合索引,优化 user_base 和 log_login 实战

    本节是关于MySQL的复合索引相关的知识,两个或更多个列上的索引被称作复合索引,本文主要介绍了mysql 联合索引生效的条件及失效的条件 对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可 ...

  8. 从零开始手写 mybatis (三)jdbc pool 从零实现数据库连接池

    前景回顾 第一节 从零开始手写 mybatis(一)MVP 版本 中我们实现了一个最基本的可以运行的 mybatis. 第二节 从零开始手写 mybatis(二)mybatis interceptor ...

  9. Linux实现指定用户sftp传输,静止ssh登录

    1.环境 名称 ip server 192.168.1.1 client 192.168.1.2 2.服务器创建repl用户 useradd -m -d /home/repl -s /usr/sbin ...

  10. Java8接口中抽象方法和default和static方法的区别和使用

    Java接口说明 传统的理解是接口只能是抽象方法.但是程序员们在使用中,发现很不方便,实现接口必须重写所有方法,很麻烦.所以java设计者妥协了,在java8中,支持default和static方法, ...