【JAVA】编程(3)---王狗蛋先生去取钱,发现余额不足 !?!?
作业要求:
1.写一个名为Account的类模拟账户。该类的属性和方法如下所示:
该类包括的属性: ID,余额balance,年利率;
包含的方法:各属性的set和get方法。取款方法withdraw ( ) ,存款方法deposit ( );
2.写一个测试程序:
创建一个Customer,名字叫王狗蛋, 他有一个账号为1314,余额为2000,年利率为1.23的账户,对王狗蛋的账户1314进行操作:
存入100元,再取出960元,再取出2000;
信息如下显示:
成功存入: 100
成功取出: 960
余额不足,取钱失败
public class 银行虚拟账户管理 {
public static void main(String[] args) {
Account a= new Account("1314", 2000, 1.23);
//把账户a给了c(王狗蛋)
Customer c=new Customer("王狗蛋",a);
/*c.act...再进行对账户的操作是错误的因为act是私有的,只能通过公共方法对其进行操作,可以用a.对账户进行操作,但是这样就失去了面向对象
的思想,现在账户a是c的,c是取钱存钱的那个人,所以只有c.可以对他的账户a进行操作,而用c.act.是错误的,因为act相对于用户是私有属性,
所以只能通过人为设置的入口对其操作:c.getAct().deposit(); 等价于 act.deposit(); 虽然等价但是前者才是正确书写*/
c.getAct().deposit(100);
c.getAct().withdraw(960);
c.getAct().withdraw(2000);
}
}
class Customer{
protected String name;
protected Account act;
public Customer(){
}
public Customer(String name,Account act){
this.name=name;
this.act=act;
}
public void setName(String name){
this.name=name;
}
public void setAct(Account act){
this.act=act;
}
public String getName(){
return name;
}
public Account getAct(){
return act;
}
}
class Account{
protected String id;
protected double balance;
protected double nianLiLv;
public Account(){
this(null,0,0);
}
public Account(String id,double balance,double nianLiLv){
this.id=id;
this.balance=balance;
this.nianLiLv=nianLiLv;
}
public void setId(String id){
this.id=id;
}
public void setBalance(double balance){
this.balance=balance;
}
public void setNianLiLv(double nianLiLv){
this.nianLiLv=nianLiLv;
}
public String getId(){
return id;
}
public double getBalance(){
return balance;
}
public double getNianLiLv(){
return nianLiLv;
}
public void withdraw(int i1){
if(i1>balance){
System.out.println("余额不足,取款失败");
}
else {
System.out.println("成功取出:" + i1);
//balance -= i1;---第一种写法
//this.setBalance(balance-i1);---第二种写法
this.setBalance(this.getBalance()-i1);//---第三种写法
}
}
public void deposit(int i1){
System.out.println("成功存入:"+i1);
balance+=i1;
}
}
输出结果:
成功存入:100
成功取出:960
余额不足,取款失败
Process finished with exit code 0
博主能力有限,若程序有bug或有其他不当之处,请狠狠打脸博主 (~ ̄(OO) ̄)ブ
【JAVA】编程(3)---王狗蛋先生去取钱,发现余额不足 !?!?的更多相关文章
- 要想学好Java编程,构造器、方法重载、this关键字、垃圾回收机制,这4关一定要过!
有人说,你应该关注时事.财经,甚至流行的电影.电视剧,才有可能趁着热点写出爆文:有人说,你别再写“无聊”的技术文了,因为程序员的圈子真的很小,即便是像鸿洋那样的招牌大牛,文章是那么的干货,浏览量有多少 ...
- [Java编程思想-学习笔记]第3章 操作符
3.1 更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...
- 《java编程思想》读书笔记(一)开篇&第五章(1)
2017 ---新篇章 今天终于找到阅读<java编程思想>这本书方法了,表示打开了一个新世界. 第一章:对象导论 内容不多但也有20页,主要是对整本书的一个概括.因为已经有过完整JAV ...
- Google Java编程风格指南
出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Comm ...
- 谷歌Java编程规范
Google Java编程风格指南 January 20, 2014 作者:Hawstein 出处:http://hawstein.com/posts/google-java-style.html 声 ...
- Java编程思想——初始化与清理
PS:最近一直忙于项目开发..所以一直没有写博客..趁着空闲期间来一发.. 学习内容: 1.初始化 2.清理 1.初始化 虽然自己的Java基础还是比较良好的..但是在解读编程思想的时候还是发现了 ...
- java编程思想-复用类总结
今天继续读<java 编程思想>,读到了复用类一章,看到总结写的很好,现贴上来,给大家分享. 继承和组合都能从现有类型生成新类型.组合一般是将现有类型作为新类型底层实现的一部分来加以复用, ...
- Google Java编程风格指南中文版
作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Cre ...
- 注解的基本盘点 -- 《Java编程思想》
注解(元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在之后的某一个时刻非常方便地使用这些数据. ---<Java编程思想> 其实注解可以理解为一个工具类,只要使用了这个工 ...
随机推荐
- P4716-[模板]最小树形图
正题 题目链接:https://www.luogu.com.cn/problem/P4716 题目大意 给出\(n\)个点\(m\)条边的一张有向图,求以\(r\)为根的最小外向树. \(1\leq ...
- vue项目中的element-ui地区级联选择器加详细地址push到对象中不显示的问题
想要实现级联选择器el-cascader和输入框el-input共同组成的详细地址,添加数据时弹出el-drawer嵌套el-form弹窗,然后在el-form添加数据提交后push到el-table ...
- Apache ShardingSphere 元数据加载剖析
唐国城 小米软件工程师,主要负责 MIUI 浏览器服务端研发工作.热爱开源,热爱技术,喜欢探索,热衷于研究学习各种开源中间件,很高兴能参与到 ShardingSphere 社区建设中,希望在社区中努力 ...
- Bloom Filter算法
Bloom Filter算法详解 什么是布隆过滤器 布隆过滤器(Bloom Filter)是 1970 年由布隆提出的.它实际上是一个很长的二进制向量和一系列随机映射函数 (下面详细说),实际上你也可 ...
- 一文了解MySQL性能测试及调优中的死锁处理方法,你还看不明白?
一文了解MySQL性能测试及调优中的死锁处理方法,你还看不明白? 以下从死锁检测.死锁避免.死锁解决3个方面来探讨如何对MySQL死锁问题进行性能调优. 死锁检测 通过SQL语句查询锁表相关信息: ( ...
- git 更新与图形界面
git 软件更新:git update-git-for-windows 或者 git update gitk 是一个历史记录的图形化查看器. 使用:只需 cd 到一个 Git 仓库,然后键入:gitk ...
- 【死磕 NIO】— Reactor 模式就一定意味着高性能吗?
大家好,我是大明哥,我又来了. 为什么是 Reactor 一般所有的网络服务,一般分为如下几个步骤: 读请求(read request) 读解析(read decode) 处理程序(process s ...
- props&attrs provide inject
defineComponent({ props: {// 1 } setup (props, {attrs, emit}) { } }) 一,组件传值: 父传子: 1.如果没有在定义的props中声明 ...
- Stream中的Pipeline理解
使用Stream已经快3年了,但是从未真正深入研究过Stream的底层实现. 今天开始把最近学到的Stream原理记录一下. 本篇文章简单描述一下自己对pipeline的理解. 基于下面一段代码: p ...
- 关于tkinter
tkinter介绍 tkinter是python自带的GUI库,是对图形库TK的封装tkinter是一个跨平台的GUI库,开发的程序可以在win,linux或者mac下运行 组件概念 一个窗口中任意内 ...