面向对象(中)-继承和super课后练习
package top.qaqaq.java.P279;

public class Account {

	private int id;// 账号
	private double balance;// 余额
	private double annuallneterstRate;// 年利率

	public Account(int id, double balance, double annuallneterstRate) {
		super();
		this.id = id;
		this.balance = balance;
		this.annuallneterstRate = annuallneterstRate;
	}

	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 getAnnuallneterstRate() {
		return annuallneterstRate;
	}

	public void setAnnuallneterstRate(double annuallneterstRate) {
		this.annuallneterstRate = annuallneterstRate;
	}

	// 返回月利率
	public double getMonthlyInterest() {
		return annuallneterstRate / 12;
	}

	// 取钱
	public void withdraw(double amount) {
		if (balance >= amount) {
			balance -= amount;
			return;
		}
		System.out.println("余额不足");
	}

	// 存钱
	public void deposit(double amount) {
		if (amount > 0) {
			balance += amount;
		}
	}
}
package top.qaqaq.java.P279;

/*
 * 写一个用户程序测试 Account 类。在用户程序中,
 * 创建一个账号为 1122、余额为 20000、年利率 4.5%的 Account 对象。
 * 使用 withdraw 方法提款 30000 元,并打印余额。
 * 再使用 withdraw 方法提款 2500 元,
 * 使用 deposit 方法存款 3000 元,然后打印余额和月利率。
 * 
 * 
 * 
 * 
 * 
 */
public class AccountTest {
	public static void main(String[] args) {

		Account acct = new Account(1122, 20000, 0.045);

		acct.withdraw(30000);
		System.out.println("您的账户余额为:" + acct.getBalance());
		acct.withdraw(2500);
		System.out.println("您的账户余额为:" + acct.getBalance());
		acct.deposit(3000);
		System.out.println("您的账户余额为:" + acct.getBalance());

		System.out.println("月利率为:" + (acct.getMonthlyInterest()) * 100 + "%");
	}

}
/*
 * 创建 Account 类的一个子类 CheckAccount 代表可透支的账户,该账户中定义一个属性 overdraft 代表可透支限额。
 * 在 CheckAccount 类中重写 withdraw 方法,其算法如下:
	如果(取款金额<账户余额),
	可直接取款
	如果(取款金额>账户余额),
	计算需要透支的额度
	判断可透支额 overdraft 是否足够支付本次透支需要,如果可以
		将账户余额修改为 0,冲减可透支金额
	如果不可以
		提示用户超过可透支额的限额
 * 
 * 
 * 
 * 
 * 
 */
package top.qaqaq.java.P279;

public class CheckAccount extends Account {

	private double overdraft;// 可透支限额

	public CheckAccount(int id, double balance, double annuallneterstRate, double overdraft) {
		super(id, balance, annuallneterstRate);
		this.overdraft = overdraft;
	}

	public double getOverdraft() {
		return overdraft;
	}

	public void setOverdraft(double overdraft) {
		this.overdraft = overdraft;
	}

	@Override
	public void withdraw(double amount) {
		if (getBalance() >= amount) {// 余额就足够消费
//			getBalance() -= amount;
			// 方式一:
//			setBalance(getBalance() - amount);
			// 方式二:
			super.withdraw(amount);
		} else if (overdraft >= amount - getBalance()) {// 透支额度+余额足够消费

			overdraft -= (amount - getBalance());

//			setBalance(0);
			// 或
			super.withdraw(getBalance());

		} else {
			System.out.println("超过可透支限额!");
		}
	}

}
package top.qaqaq.java.P279;

/*
 * 写一个用户程序测试 CheckAccount 类。
 * 在用户程序中,创建一个账号为 1122、余额为 20000、年利率 4.5%,可透支限额为 5000 元的 CheckAccount 对象。
	使用 withdraw 方法提款 5000 元,并打印账户余额和可透支额。
	再使用 withdraw 方法提款 18000 元,并打印账户余额和可透支额。
	再使用 withdraw 方法提款 3000 元,并打印账户余额和可透支额。
 * 
 * 
 * 
 * 
 * 
 * 
 */
public class CheckAccountTest {

	public static void main(String[] args) {

		CheckAccount acct = new CheckAccount(1122, 20000, 0.045, 5000);

		acct.withdraw(5000);
		System.out.println("您的账户余额为:" + acct.getBalance());
		System.out.println("您的可透支额度为:" + acct.getOverdraft());
		acct.withdraw(18000);
		System.out.println("您的账户余额为:" + acct.getBalance());
		System.out.println("您的可透支额度为:" + acct.getOverdraft());
		acct.withdraw(3000);
		System.out.println("您的账户余额为:" + acct.getBalance());
		System.out.println("您的可透支额度为:" + acct.getOverdraft());
	}
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇