Java面向对象第一次作业

模拟ATM机

包名:bank

根据类图创建两个类,分别是Account和Customer.

ps:自己可以加密码,玩控制台操作。

Account类要求:

  1. 声明一个私有属性:balance,保存余额。
  2. 声明带有一个参数(initBalance)的公有构造方法,初始化balance属性
  3. 声明一个公有方法getBalance,用于获取经常余额。
  4. 声明一个公有方法deposit,存钱。
  5. 声明一个公有方法withdraw,取钱。

Customer类要求

  1. 声明三个私有属性,分别生成公有的set/get方法。
  2. 声明一个带两个参数的构造方法,初始化成员变量。

注意:此类包含另一个类的对象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());
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤永红

一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值