学习中的一个小程序,记录学习之路,欢迎各位大佬指正。
直接贴代码了。
//JiLu类
package com.gem.day17Homework;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@NoArgsConstructor
@AllArgsConstructor
@Setter
@Getter
public class jiLu {
private String objective;
private long balance;
private long money;
private String explain;
{
balance = 10000;
}
public void show() {
System.out.println(this.objective + "\t" + this.balance + "\t" + this.money + "\t" + this.explain);
}
}
package com.gem.day17Homework;
public class List {
private jiLu[] jiLuList = new jiLu[100];
private int curLength = 0;
private static final List list = new List();
//提供get方法访问改静态属性
public static List getList() {
return list;
}
public void inMoney(jiLu jilu, Long money, String explain) {
if (money <= 0) {
System.out.println("收入金额输入错误");
return;
}
this.jiLuList[this.curLength] = jilu;
jilu.setObjective("收入");
jilu.setExplain(explain);
jilu.setMoney(money);
//修改余额
if (curLength == 0) {
jilu.setBalance(jilu.getBalance() + money);
} else {
jilu.setBalance(jiLuList[this.curLength - 1].getBalance() + money);
}
//balance.inM(money);
curLength++;
System.out.println("收入成功");
}
public void outMoney(jiLu jilu, Long money, String explain) {
if (money <= 0) {
System.out.println("支出金额输入错误");
return;
}
this.jiLuList[this.curLength] = jilu;
//修改余额
jilu.setObjective("支出");
jilu.setExplain(explain);
jilu.setMoney(money);
//balance.setBalance(balance.getBalance() - money);
if (curLength == 0) {
jilu.setBalance(jilu.getBalance() - money);
} else {
jilu.setBalance(jiLuList[this.curLength - 1].getBalance() - money);
}
//balance.outM(money);
curLength++;
System.out.println("支出成功");
}
public void showAll() {
if (curLength == 0) {
System.out.println("无记录");
return;
}
for (int i = 0; i < this.curLength; i++) {
// accountList[i] 账户对象, 对象.方法(); show()输出账户的信息
jiLuList[i].show();
}
}
}
package com.gem.day17Homework;
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
//键盘输入
Scanner scanner = new Scanner(System.in);
List list = List.getList();
//单例模式
/*Runtime runtime = Runtime.getRuntime();//单例 jvm
runtime.gc();//让垃圾回收机制回收垃圾,不一定回收
*/
while (true) {//主菜单
menu(scanner, list);
}
}
public static void menu(Scanner scanner, List list) {
System.out.println("1.收支明细");
System.out.println("2.登记收入");
System.out.println("3.登记支出");
System.out.println("4.退 出");
System.out.println("请输入您的选择:");
int choice = Integer.parseInt(scanner.nextLine().trim());
switch (choice) {
case 1: //显示
list.showAll();
break;
case 2://登记收入
inMoney(scanner, list);
break;
case 3://登记支出
outMoney(scanner, list);
break;
case 4:
System.exit(0);
break;
default:
System.out.println("您输入的不正确");
break;
}
}
public static void inMoney(Scanner scanner, List list) {
System.out.print("本次收入金额:");
long money = Long.parseLong(scanner.nextLine().trim());
System.out.print("本次收入说明:");
String explain = scanner.nextLine().trim();
jiLu a1 = new jiLu();
list.inMoney(a1, money, explain);
}
public static void outMoney(Scanner scanner, List list) {
System.out.print("本次支出金额:");
long money = Long.parseLong(scanner.nextLine().trim());
System.out.print("本次支出说明:");
String explain = scanner.nextLine().trim();
jiLu a1 = new jiLu();
list.outMoney(a1, money, explain);
}
}