Account类给卡号,密码和余额属性私有化
//模拟银行账户业务,编写Account类,账户 密码 金额为 bank添加带参方法实现存款和取款业务,
//存款时帐户初始金额为0元,取款时如果余额不足给出提示。
public class Account {
// 卡号
private String cardNum;
// 密码
private String password;
// 余额
private double money;
public String getCardNum() {
return cardNum;
}
public void setCardNum(String cardNum) {
this.cardNum = cardNum;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public Account() {
}
public Account(String cardNum, String password, double money) {
super();
this.cardNum = cardNum;
this.password = password;
this.money = money;
}
public Account(String cardNum, String password) {
super();
this.cardNum = cardNum;
this.password = password;
}
}
Bank类
import java.util.Scanner;
//模拟银行账户业务,bank添加带参方法实现存款和取款业务,
//存款时帐户初始金额为0元,取款时如果余额不足给出提示。
public class Bank {
// 5个银行账户信息
Account[] accs = new Account[5];
Scanner input = new Scanner(System.in);
// 验证登陆信息,登陆成功返回,登陆用户信息,不成功返回null
public Account login(String cardNum, String passwords) {
for (int i = 0; i < accs.length; i++) {
// 用户不为null
if (accs[i] != null) {
// 卡号和密码是否正确
if (accs[i].getCardNum().equals(cardNum) && accs[i].getPassword().equals(passwords)) {
// 找到账户,返回账户信息
return accs[i];
}
}
}
// 没有找到直接返回null
return null;
}
/**
* 展示菜单
*/
public void showMenu() {
System.out.println("请输入卡号");
String cardNum = input.next();
System.out.println("请输入密码");
String password = input.next();
//登陆方法,返回登陆用户信息
Account account = login(cardNum, password);
// 判断用户是否登陆成功
if (account == null) {
System.out.println("登陆失败");
} else {
do {
System.out.println("**********xx银行欢迎你:" + account.getCardNum() + "***********");
System.out.println("1 取钱 2 存钱 0退出");
System.out.println("***********************************");
System.out.println("请选择要办理的业务:");
String chose = input.next();
switch (chose) {
case "1":
takeMoney(account);
break;
case "2":
saveMoney(account);
break;
case "0":
default:
System.out.println("谢谢使用,8888888886");
return;
}
} while (true);
}
}
/**
* 存钱
*/
public void saveMoney(Account account) {
System.out.println("请问您要存多少钱");
double money = input.nextDouble();
double newMoney = account.getMoney()+money;
account.setMoney(newMoney);
System.out.println("共存钱"+money);
System.out.println("现余额为:"+account.getMoney());
}
/**
* 取钱方法
*/
public void takeMoney(Account account) {
System.out.println("请问您要取多少钱");
double money = input.nextDouble();
//取得钱 小于等于 存款
if (money<=account.getMoney()) {
//钱够了
//account.setMoney(account.getMoney()-money);
//余额-要取得钱=newMoney
double newMoney = account.getMoney()-money;
//把新的余额set到account对象,设置新的余额
account.setMoney(newMoney);
System.out.println("取款成功,共取款:"+money);
System.out.println("您现有的余额是:"+account.getMoney());
}else {
System.out.println("余额不足,您现有的余额是:"+account.getMoney());
}
}
// 设置构造方法,快速初始化数据
public Bank() {
accs[0] = new Account("1234", "1234", 1000);
accs[1] = new Account("321", "321", 5000);
accs[2] = new Account("2333", "2333", 0);
}
}
Test 测试类
public class Test {
public static void main(String[] args) {
Bank bank = new Bank();
bank.showMenu();
}
}