账户和顾客类练习

/*写一个名为Account的类模拟账户
     1.该类的属性和方法如下所示:
     该类包括的属性:  账户id,余额balance,年利率annualInterestRate
     该类包含的方法:个属性的set和get方法。取款方法withdraw(),存款方法deposite()

 写一个测试程序
     1.创建一个Customer,名叫Jane smith,他有一个账号为1000,余额为2000,年利率为1.28
     2.对Jane smith操作:
       存入100元,再取出960元,再取出2000.
  打印Jane smith的基本信息
  信息显示如下:
    成功存入:100
    成功取出:960
    余额不足,取钱失败
 */
public class test04 {
    public static void main(String[] args) {
        //先创建账户Account类对象
        Account a = new Account("1000",2000,1.28);
        //创建客户类对象
        //传递给构造方法的 a 是让Customer对象和Account对象产生关系
        //表示这个对象是给smith的
        Customer c = new Customer("Jame smith",a );

        c.getAcc().deposite(100);
        c.getAcc().withdraw(960);
        c.getAcc().withdraw(2000);
    }
}

//创建一个账户Account类
class Account {
    //都创建为私有属性,
    private String id;
    private double balance;
    private double annualInterestRate;

    //无参构造
    public Account(){
    }
    //有参构造
    public Account(String id, double balance, double annualInterestRate){
        this.id = id;
        this.balance = balance;
        this.annualInterestRate = annualInterestRate;
    }

    //三个私有属性对应的set 和 get方法;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }

    public void setBalance(double balance) {
        this.balance = balance;
    }
    public double getBalance() {
        return balance;
    }

    public double getAnnualInterestRate() {
        return annualInterestRate;
    }

    public void setAnnualInterestRate(double annualInterestRate) {
        this.annualInterestRate = annualInterestRate;
    }

    //定义取款方法withdraw()和存款方法deposite()
    public void withdraw(double money){
        if(balance < money){
            System.out.println("余额不足,取款失败");
            return;
        }
        //进行到这里,说明可以取款
        //this.balance += money;
        //利用this.set()   this.get() 方法修改存取后的余额
        this.setBalance(this.getBalance()-money);
        System.out.println("成功取出"+money);
    }

    public void deposite(double money){
        this.setBalance(this.getBalance()+money);
        System.out.println("成功存入"+money);
    }
}

/*
由这里的 ”1.创建一个Customer,名叫Jane smith,他有一个账号为1000,余额为2000,年利率为1.28“ 应该得知需要
创建一个Customer类,包含有人名,账号 两个属性 ,通过new一个Customer类的实例对象来连接与Account类。
 */
class Customer{
    private String name;
    //这里用Account类创建一个属性账户:acc
    private Account acc;

    //无参 和 有参
    public Customer(){
    }
    public Customer(String name,Account acc){
        this.name = name;
        this.acc = acc;
    }

    //两个私有属性对应的set 和 get方法

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Account getAcc() {
        return acc;
    }

    public void setAcc(Account acc) {
        this.acc = acc;
    }
}

 

posted on 2022-10-31 20:41  三岁学JAVA  阅读(80)  评论(0)    收藏  举报