作业要求:

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)---王狗蛋先生去取钱,发现余额不足 !?!?的更多相关文章

  1. 要想学好Java编程,构造器、方法重载、this关键字、垃圾回收机制,这4关一定要过!

    有人说,你应该关注时事.财经,甚至流行的电影.电视剧,才有可能趁着热点写出爆文:有人说,你别再写“无聊”的技术文了,因为程序员的圈子真的很小,即便是像鸿洋那样的招牌大牛,文章是那么的干货,浏览量有多少 ...

  2. [Java编程思想-学习笔记]第3章 操作符

    3.1  更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...

  3. 《java编程思想》读书笔记(一)开篇&第五章(1)

    2017 ---新篇章  今天终于找到阅读<java编程思想>这本书方法了,表示打开了一个新世界. 第一章:对象导论 内容不多但也有20页,主要是对整本书的一个概括.因为已经有过完整JAV ...

  4. Google Java编程风格指南

    出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Comm ...

  5. 谷歌Java编程规范

    Google Java编程风格指南 January 20, 2014 作者:Hawstein 出处:http://hawstein.com/posts/google-java-style.html 声 ...

  6. Java编程思想——初始化与清理

    PS:最近一直忙于项目开发..所以一直没有写博客..趁着空闲期间来一发.. 学习内容: 1.初始化 2.清理 1.初始化   虽然自己的Java基础还是比较良好的..但是在解读编程思想的时候还是发现了 ...

  7. java编程思想-复用类总结

    今天继续读<java 编程思想>,读到了复用类一章,看到总结写的很好,现贴上来,给大家分享. 继承和组合都能从现有类型生成新类型.组合一般是将现有类型作为新类型底层实现的一部分来加以复用, ...

  8. Google Java编程风格指南中文版

    作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Cre ...

  9. 注解的基本盘点 -- 《Java编程思想》

    注解(元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在之后的某一个时刻非常方便地使用这些数据. ---<Java编程思想> 其实注解可以理解为一个工具类,只要使用了这个工 ...

随机推荐

  1. 羽夏逆向破解日记簿——RunAsDate的实现原理分析

    前言   RunAsDate是一个小工具,允许您在指定的日期和时间运行程序,不过有人用它来破解有时间限制了.此实用程序不会更改计算机的当前系统日期和时间,但只会将指定的日期/时间注入所需的应用程序.该 ...

  2. P4245-[模板]任意模数多项式乘法

    正题 题目链接:https://www.luogu.com.cn/problem/P4245 题目大意 两个多项式,求它们的乘积模\(p\). 解题思路 方法好像挺多,我用的是最简单的一种就是,先定一 ...

  3. Winform配置文件读写操作

    前言 在项目当中为了增加软件的灵活性及可配置性,配置文件在程序当中起着不可替代的作用.下面介绍一下最近用的比较多的方式. config文件的操作 数据库连接字符串 1.获取连接字符串 public s ...

  4. Flask SSTI利用方式的探索

    Flask SSTI利用方式的探索 一.SSTI简介&环境搭建 ​ 一个统一风格的站点,其大多数页面样式都是一致的,只是每个页面显示的内容各不相同.要是所有的逻辑都放在前端进行,无疑会影响响应 ...

  5. PostgreSQL 大小写问题 一键修改表名、字段名为小写

    标准的SQL是不区分大小写的.但是PostgreSQL对于数据库中对象的名字允许使用支持大小写区分的定义和引用方法.方式就是在DDL中用双引号把希望支持大小的对象名括起来.比如希望创建一个叫AAA的表 ...

  6. java设计模式_单例模式

    懒汉式 非线程安全 特点:Lazy 初始化.非多线程安全.易实现 描述:这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程.因为没有加锁 synchronized,所以严格意义上它并不算单 ...

  7. 2021-5-15 vj补题

    C - Win or Freeze CodeForces - 151C 题目内容: You can't possibly imagine how cold our friends are this w ...

  8. Bootstrap移动端导航(简易)

    效果 在线查看 代码少,都在HTML里 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  9. 10-1 Python 学习笔记

    1. 项目 在文本编辑器中新建一个文件,写几句话来总结一下你至此学到的 Python 知识,其中每一行都以"In Python you can"打头. 将这个文件命名为learni ...

  10. python字符串调用举例

    以如下打印为例: my name is tom and my age is 12 方式一:字符串格式化表达式 name = 'tom' age = 12 print("my name is ...