代码内容
在同一个包下面创建两个java类,SmallChangeOOP 和 SmallChangeApp
SmallChangeOOP
说明:
* 此类主要进行零钱通的OOP(面向对象编程)实现方式
* 将各个功能对应一个方法
代码:
package com.ldy.smallChange.OOP;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/*
* 此类主要进行零钱通的OOP(面向对象编程)实现方式
* 将各个功能对应一个方法
* */
public class SmallChangeOOP {
//属性
boolean loop =true;//控制是否继续循环
Scanner scanner = new Scanner(System.in);
int key;//记录输入的菜单选择
//零钱通明细
String detail = "-----------------------零钱通明细--------------------";//通过字符串记录输出明细详情
//收益入账
double money;//记录输入的金额
double balance =0;//记录当前的余额
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//日期格式化
//消费
String note;//记录消费的说明
//退出
String choose;//记录退出确认时候的输入(y/n)
//方法
//显示主菜单
public void mainMenu(){
do{
System.out.println("\n-----------------------零钱通菜单--------------------");
System.out.println("\t\t\t\t\t1 零钱通明细");
System.out.println("\t\t\t\t\t2 收益入账");
System.out.println("\t\t\t\t\t3 消费");
System.out.println("\t\t\t\t\t4 退\t出");
System.out.print("请选择(1-4):");
key = scanner.nextInt();
switch (key){
case 1:
this.detail();
break;
case 2:
this.inCome();
break;
case 3:
this.consumption();
break;
case 4:
this.exit();
break;
default:
System.out.println("输入有误,请重新输入");
}
}while (loop);
System.out.println("\n-----------------------已退出零钱通系统--------------------");
}
//显示明细
public void detail(){
System.out.println(detail);
}
//入账
public void inCome(){
System.out.print("请输入入账金额:");
money = scanner.nextDouble();
//这里要对输入的金额进行验证,输入的金额必须要大于0才合理
//编程思想,通过排除错误的情况来做,而不是去判断什么情况是正确的,这样逻辑会简单一些
if (money<=0){
System.out.println("搞错了哦!入账金额应该大于0");
return;
}
balance += money;//更新余额
detail+="\n收益入账\t+"+money+"\t"+sdf.format(date)+"\t余额:"+balance;//更新明细
System.out.println(detail);
}
//消费
public void consumption(){
System.out.print("请输入消费金额:");
//这里要对输入的金额进行验证,输入的金额必须要大于0才合理
money = scanner.nextDouble();
//编程思想,通过排除错误的情况来做,而不是去判断什么情况是正确的,这样逻辑会简单一些
if (money<=0||money>balance){
System.out.println("搞错了哦!消费金额需要大于0且小于"+balance);
return;
}
balance -= money;//更新余额
System.out.print("请输入消费说明:");
note = scanner.next();
detail+="\n"+note+"\t-"+money+"\t"+sdf.format(date)+"\t余额:"+balance;//更新明细
System.out.println(detail);
}
//退出
public void exit(){
do {//判断是否是输入的y和n,不是则一直循环提示
System.out.print("请确认是否退出(y/n):");
choose = scanner.next();
} while (!"y".equals(choose) && !"n".equals(choose));
;
if ("y".equals(choose)){
loop =false;
}
}
}
SmallChangeApp
说明:
* 此类就是来运行项目(在此类进行运行项目)
代码:
package com.ldy.smallChange.OOP;
public class SmallChangeApp {
public static void main(String[] args) {
new SmallChangeOOP().mainMenu();
}
}