问题:
Account类源码:
public class Account {
//属性
private double balance;//账户余额
//构造器
public Account(double init_balance) {
this.balance = init_balance;
}
//方法
//查看账号余额
public double getBalance() {
return this.balance;
}
//存钱操作
public void deposit(double amt) {
if(amt > 0) {
balance += amt;
System.out.println("存钱成功!" + "存入金额为: \t" + amt + "元");
}else {
System.out.println("存入金额非法!");
}
}
//取钱操作
public void withDraw(double amt) {
if(this.balance >= amt) {
balance -= amt;
System.out.println("取钱成功!" + "取出金额为: \t" + amt + "元");
}else {
System.out.println("余额不足!");
}
}
}
Customer类源码:
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 this.firstName;
}
//查看名
public String getListName() {
return this.lastName;
}
//设置账户
public void setAccount(Account acct) {
this.account = acct;
}
//显示账号
public Account getAccount() {
return this.account;
}
}
Bank类源码:
public class Bank {
//属性
private Customer[] customers;//存储客户信息
private int numberOfCustomers;//当前用户个数
//构造器
public Bank() {
//在创建Bank类的对象的同时给customers这个一维Customer数组创建一个新的空间
//如果没有这个操作那么引用数据类型customers存的是null
//无法进行添加客户的操作,会造成空指针异常
customers = new Customer[10];
}
//方法
//添加客户,每次添加一个客户,当前用户就加一
public void addCostomer(String f,String l) {
Customer cust = new Customer(f,l);
customers[numberOfCustomers] = cust;
numberOfCustomers ++;
}
//获取客户个数
public int getNumberOfCustomers() {
return this.numberOfCustomers;
}
//放回指定客户的信息
public Customer getCustomer(int index) {
if(index >= 0 && index < numberOfCustomers) {
return customers[index];
}
return null;
}
}
BankText类源码:
/*
* 1.类的对象才能够调用该方法
* 2.当一个A类的对象a调用某一个方法的返回值是类B,则这个整体"a.方法名"就是类B的一个对象
* 可以调用类B中的方法
* 3.可以用匿名对象简化过程
*
*/
public class BankText {
public static void main(String[] args) {
//测试一:添加一个名字叫张三的用户,给他的用户设置余额为2000,存钱200,取钱600;
//方法一:
/* Bank bank = new Bank();//先创建一个Bank的对象
bank.addCostomer("张", "三");//通过Bank对象调用addCostomer方法添加张三用户,标记为customer[0]
Account account = new Account(2000);//给张三设置一个账号,设置的时候余额为2000
//通过bank.getCustomer(0)找到张三客户,即bank.getCustomer(0)是Customer的一个对象!!
//可以调用其中的方法
bank.getCustomer(0).setAccount(account);
bank.getCustomer(0).getAccount().deposit(200);
bank.getCustomer(0).getAccount().withDraw(600);
//显示一下
double balance = bank.getCustomer(0).getAccount().getBalance();
System.out.println("余额为" + balance);
*/
//方法二;匿名对象创建空间
//创建Bank对象
Bank bank = new Bank();
//通过Bank对象创建客户
bank.addCostomer("张", "三");
//创建客户的账号,并且赋值2000
bank.getCustomer(0).setAccount(new Account(2000));
//bank.getCustomer(0).getAccount()整体是Account的对象可以调用其中的方法
//存钱
bank.getCustomer(0).getAccount().deposit(200);
//取钱
bank.getCustomer(0).getAccount().withDraw(600);
//显示余额
double balance = bank.getCustomer(0).getAccount().getBalance();
//输出
System.out.println(bank.getCustomer(0).getFirstName() + bank.getCustomer(0).getListName()
+ "客户余额为:" + balance + "元");
}
}
运行结果: