用面向对象思想编写方法写出atm机取款流程
在java学习中,面向对象思想是学习这门语言的核心,通过定义各种类和方法并调用
他们来写出一个项目,这样在修改项目时可以通过修改里面的方法而不是直接修改整
个代码,达到了方便简单的目的,下面就用一个atm机提款流程来简单练习方法的使
用,代码如下:
package com.jredu.object;import java.time.Year;
import java.util.Scanner;public class Atm {//在这里为图方便直接在atm类中定义了密码类,建议正常书写时单独定义public class Password {private int password;public Password(int password) {super();this.password = password;}}// 类的属性声明public int inputpassword;Password psd = new Password(111111);Scanner scanner = new Scanner(System.in);int money = 0;// 用户选择的提款金额int total = 20000;// 总金额// 输入并验证密码部分public void ipsd() {for (int i = 3; i >= 1; i--) {System.out.print("请输入密码:");int input1 = scanner.nextInt();//获取输入的密码//验证密码,共三次机会if (input1 != psd.password) {System.out.println("密码错误,请重新输入,还有" + (i - 1) + "次机会");if (i == 1) {System.out.println("密码错误,请取卡");return;}continue;} else {amount();return;}}}// 输入金额部分public void amount() {System.out.println("0.手动输入金额\t1.100元\t2.300元\t3.500元\t4.1000元\t5.3000元\t6.5000元");int num = scanner.nextInt();//获取输入的数字//用switch语句进行金额选择switch (num) {case 0:System.out.print("请手动输入金额(必须要100元的倍数,最低100元,最高不超过1000元)");money = scanner.nextInt();if (!(money % 100 == 0 && money > 0 && money < 1001)) {System.out.println("金额有误,是否继续(y/n)");money = 0;}break;case 1:money = 100;break;case 2:money = 300;break;case 3:money = 500;break;case 4:money = 1000;break;case 5:money = 3000;break;case 6:money = 5000;break;default:System.out.println("输入有误,是否继续(y/n)");money = 0;break;}//在选择结束后进入到判断方法中decide();}public void decide() {// 根据金额扣除余额if (money > 0) {// 判断是否余额大于等于要扣除的金额if (total > money) {// 可以正确取钱total -= money;System.out.println("提款成功,余额:" + total + ",是否继续(y/n)");} else if (total == money) {// 可以取钱,结束程序total = 0;System.out.println("谢谢使用,请取卡");return;} else {// 不可以取钱System.out.println("余额不足,余额剩余" + total + ",是否继续(y/n)");}} //获取是否继续选项String next = scanner.next();//对获取的字符串进行判断,如果继续y就返回amount方法,否则输入语句后退出此方法if (next.equals("y")) {amount();} else {System.out.println("交易取消,请取卡");return;}}
//测试类public static void main(String[] args) {Atm ac = new Atm();ac.ipsd();}
}
用面向对象思想编写方法写出atm机取款流程相关推荐
- java面向对象思想编写原谅帽小游戏 原谅帽游戏思路解析
java面向对象思想编写原谅帽小游戏 原谅帽游戏思路解析: 面向对象思想 作品展示 类(游戏端)继承Frame: 首先要创建一个方法去让游戏开始和结束 使用text执行这个游戏的方法(需要有游戏标题和 ...
- 用正确方法写出质量好的软件的75条体会
blueski推荐 [2005-6-27] 出处:goto推荐 作者:不详 如何用正确的方法来写出质量好的软件的75条体会 向不知名的作者表示深深的感谢! 1. 你们的项目组使用源代码管理工具了么? ...
- java编写一个简单的ATM机
学习java的一点记录01 简单ATM机的实现(黑马程序员课程有具体讲解) Acount类 package com.yzh.atm;public class Account {private Stri ...
- 实战案例:场景测试之ATM机取款业务测试
本期,我们通过经典案例--ATM机的操作,来为大家详细说说如何撰写对应的测试用例. [案例] 在我们日常生活中,ATM机是个大家都非常熟悉的事物.银行为例提高工作效率,方便客户随时办理基础的储蓄和提现 ...
- JavaScript实现银行ATM机取款
// * 假设一个简单的ATM机的取款过程是这样的:首先提示用户输入密码(password). // * 最多只能输入三次,超过3次则提示用户"密码错误,请取卡"结束交易.如 ...
- 1.4 面试问题整理: ATM机取款
流程图: 1.不插入卡时,ATM界面显示正常(广告状态) 2.插入非银行卡响应 (积分卡.公交卡片等) 3.卡或正或反插入响应 4.跨行插入银行卡响应(某些银行不支持跨行取钱) 5.卡是否过期 (比如 ...
- [shell]两种方法写出99乘法表
两种方法不同点主要是输入最后的换行不同: #!/usr/bin/env bash for ((i=1;i<=9;i++)) do for ((j=1;j<=i;j++)) do echo ...
- 吃货联盟点餐java面向对象_使用面向对象思想编写吃货联盟
packagecom.dingcanxitong3;//创建一个功能的类实现各个功能接口 importjava.util.Scanner;public class Functions implemen ...
- 使用Java编写,写出1-100的偶数和奇数
打印偶数: public static void main (String[ ] args){ system.out.println("所有偶数"): for(int i=1;i& ...
最新文章
- 网络推广软文浅谈网站优化过程中图片的优化技巧和注意事项!
- Bzoj4016/洛谷P2993 [FJOI2014] 最短路径树问题(最短路径问题+长链剖分/点分治)
- 学习几个“××在内存中占几份”的若干问题
- Set的常用实现类HashSet和TreeSet
- Sybase常见问题
- 写几个函数 输入10个职工的姓名和职工号_Excel函数速查一览表-函数应用案例-信息统计(2)...
- js图片加载效果(延迟加载+瀑布流加载)
- vlc源码分析(四) 调用libts接收TS流
- jQuery(七)、效果和动画
- spring security 参考 和 例子
- Mybatis 传参问题
- SSD-Tensorflow 目标检测(自定义数据集(VOC2007格式))
- 20829-55-4,cyclo-(L-Trp-L-Trp),cyclo-L-tryptophan-L-tryptophan,cyclo(Trp-Trp)
- 【支付】微信小程序 微信支付 uniapp
- 最新最全的Android开源项目集合(转)
- 如何读取STL文件?
- linux双网卡双路由配置,linux配置双网卡双路由
- 如何实现ASP.NET中网站访问量的统计
- vue项目引入icon图标
- TVM学习(一)安装TVM Ubuntu16.04安装TVM0.8+clang-llvm12.0
热门文章
- (2110,5): warning MSB3245: 未能解析此引用。未能找到程序集“Windows”。请检查磁盘上是否存在该程序集。 如果您的代码需要此引用,则可能出现编译错误。
- Elastic Stack之用户认证
- Git:查看本地分支基于哪个分支创建
- android sim 状态,Android - 判断SIM卡状态
- 通过IP地址定位准确的地理位置
- 计算机毕业设计ssm校内考研吧hd450系统+程序+源码+lw+远程部署
- 网页设计常用色彩搭配【网址推荐】
- 碳纤维复合材料无损检测
- WPS如何快速删除姓名后面的文本
- Android 4学习(8):用户界面 - Fragment