模拟ATM机
包名:bank
根据类图创建两个类,分别是Account和Customer.
ps:自己可以加密码,玩控制台操作。
Account类要求:
- 声明一个私有属性:balance,保存余额。
- 声明带有一个参数(initBalance)的公有构造方法,初始化balance属性。
- 声明一个公有方法getBalance,用于获取经常余额。
- 声明一个公有方法deposit,存钱。
- 声明一个公有方法withdraw,取钱。
Customer类要求
- 声明三个私有属性,分别生成公有的set/get方法。
- 声明一个带两个参数的构造方法,初始化成员变量。
注意:此类包含另一个类的对象account,开发中常见。
创建测试类;TestBank
最后测试结果如下:
上面类图画法的代码
@startuml
class Customer {
-firstName:String
-lastName:String
-account:Account
+Customer(firstName:String,lastName:String)
+getFirstName():String
+getLastName():String
+getAccount():Account
+setAccount(acct:Account)
+setFirstName(firstName:String)
+setLastName(lastName:String)
}
class Account {
-balance:double
+Account(initBalance:double)
+getBalance()
+setBalance(balance:double)
+deposit(amt:double)
+withdraw(amt:double)
}
Customer "拥有" *-do- "1..*" Account
@enduml
上面三个类写法
package bank;
/**
* @ClassName Account
* @Description: TODO
* @Author 汤永红
* @Date 2020/8/2 0002
* @Version V1.0
**/
public class Account {
private double balance;
public Account(double initBalance) {
this.balance = initBalance;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
/**
* 存钱
*
* @param amt
*/
public void deposit(double amt) {
this.balance = this.balance + amt;
}
/**
* 取钱
*
* @param amt
*/
public void withdraw(double amt) {
this.balance = this.balance - amt;
}
}
package bank;
/**
* @ClassName Customer
* @Description: TODO
* @Author 汤永红
* @Date 2020/8/2 0002
* @Version V1.0
**/
public class Customer {
private String firstName;
private String lastName;
private Account account;
public Customer(String f, String l) {
this.firstName = f;
this.lastName = l;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account;
}
}
package bank;
/**
* @ClassName TestBank
* @Description: TODO
* @Author 汤永红
* @Date 2020/8/2 0002
* @Version V1.0
**/
public class TestBank {
public static void main(String[] args) {
Customer c1 = new Customer("张", "无忌");
c1.setAccount(new Account(1000));
System.out.println("员工:" + c1.getFirstName() + c1.getLastName());
System.out.println("初始工资:" + c1.getAccount().getBalance());
double inMoney = 2000;
c1.getAccount().deposit(inMoney);
System.out.println("存钱:" + inMoney + "\t余额:" + c1.getAccount().getBalance());
double outMoney = 500;
c1.getAccount().withdraw(outMoney);
System.out.println("取钱:" + outMoney + "\t余额:" + c1.getAccount().getBalance());
}
}