建立账户类,封装属性:ID,余额,利率
提供相应接口,提供存取款方法,加入判断限制
package bank;
public class Account{
private int id;
private double balance;
private double annualInterestRate;
public Account() {
}
public Account(double balance) {
}
public Account(int id,double balance,double annualInterestRate) {
this.id = id;
this.balance = balance;
this.annualInterestRate = annualInterestRate;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public double getAnnualInterestRate() {
return annualInterestRate;
}
public void setAnnualInterestRate(double annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}
public void withdraw(double amount) {
if(amount <= this.balance){
this.balance -= amount;
System.out.println("成功取出" + amount);
}else {
System.out.println("余额不足,取款失败");
}
}
public void deposit(double amount) {
if(amount > 0) {
this.balance += amount;
System.out.println("成功存入" + amount);
}
}
}
建立客户资料类,封装属性:姓名,账户,提供相应接口。
提供输出客户信息的方法
package bank;
public class Customer {
private String firstName;
private String lastName;
private Account acc;
public Customer() {
}
public Customer(String firstName,String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
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 acc;
}
public void setAccount(Account acc) {
this.acc = acc;
}
public void getInfo() {
System.out.println("客户" + getFirstName() + " " + getLastName()
+ "的余额是:" + getAccount().getBalance() + ",年利率为:" + getAccount().getAnnualInterestRate() + "%。");
}
}
建立银行类,封装属性:客户数组,账户数组,客户数量
提供增加客户的方法,输出客户数量的方法,调取客户对象的方法
package bank;
public class Bank {
private Customer[] customers;
private int numberOfCustomer;
private Account[] acc;
public Bank() {
}
public void addCustomer(String firstName,String lastName) {
numberOfCustomer++;//客户数量加1
if(numberOfCustomer <= 9999) {
Customer[] customers1 = new Customer[numberOfCustomer];//创建新客户数组
Account[] acc1 = new Account[numberOfCustomer];//创建新账户数组
customers1[numberOfCustomer - 1] = new Customer();
acc1[numberOfCustomer - 1] = new Account();
customers1[numberOfCustomer - 1].setAccount(acc1[numberOfCustomer - 1]);//新客户关联新账户
customers1[numberOfCustomer - 1].setFirstName(firstName);
customers1[numberOfCustomer - 1].setLastName(lastName);
for (int i = 0; i < acc1.length - 1; i++) {
acc1[i] = acc[i];
}
acc = acc1;//更新客户数组
for (int i = 0; i < customers1.length - 1; i++) {
customers1[i] = customers[i];
}
customers = customers1;//更新账户数组
}else {
System.out.println("客户容量超出上限9999");
return;
}
}
public int getNumberOfCustomer() {
return numberOfCustomer;
}
public Customer getCustomer(int index) {
if(index >= 0 && index < numberOfCustomer) {
return this.customers[index];
}else {
System.out.println("客户ID异常,重新输入");
return null;
}
}
}
建立测试类,测试功能
package bank;
public class Test {
public static void main(String[] args) {
Customer c = new Customer("jack","Li");
Account acc = new Account(101, 2000, 3.47);
c.setAccount(acc);
c.getAccount().deposit(100);
c.getAccount().withdraw(1980);
c.getAccount().withdraw(200);
System.out.println("客户" + c.getFirstName() + " " + c.getLastName()
+ "的余额是:" + c.getAccount().getBalance() + ",年利率为:" + c.getAccount().getAnnualInterestRate() + "%。");
Bank b = new Bank();
b.addCustomer("A", "Li");
b.getCustomer(0).getAccount().setBalance(1000);
b.getCustomer(0).getAccount().setAnnualInterestRate(3.34);
b.getCustomer(0).getInfo();
System.out.println(b.getNumberOfCustomer());
b.addCustomer("B", "Li");
b.getCustomer(1).getAccount().setBalance(2000);
b.getCustomer(1).getAccount().setAnnualInterestRate(3.34);
b.getCustomer(0).getInfo();
b.getCustomer(1).getInfo();
System.out.println(b.getNumberOfCustomer());
b.addCustomer("C", "Li");
b.getCustomer(2).getAccount().setBalance(3000);
b.getCustomer(2).getAccount().setAnnualInterestRate(3.34);
b.addCustomer("D", "Li");
b.getCustomer(3).getAccount().setBalance(5000);
b.getCustomer(3).getAccount().withdraw(1000);
b.getCustomer(3).getAccount().setAnnualInterestRate(3.34);
for (int i = 0; i < b.getNumberOfCustomer(); i++) {
b.getCustomer(i).getInfo();
}
}
}