練習題:銀行卡練習儲蓄卡與信用卡(可透支和設定額度)
題目要求
(1)宣告一個銀行儲蓄卡類,
- 包含屬性:賬戶id,餘額balance
- 包含取款 public void withdraw(double money)
- 存款 pubic void save(double money)
- 獲取賬戶資訊: public String getInfo() 可以返回賬戶和餘額
(2) 宣告一個銀行信用卡類,繼承儲蓄卡類
- 增加屬性:可透支額度,最多可透支金額
- 重寫存款 public void withdraw(double money),可透支
- 存款 pubic void save(double money),需要恢復可透支額度
- 可修改額度
(1)宣告一個銀行儲蓄卡類
package practice.practice01bank;
/**
* @author lin's
* @program Java_SE
* @description 宣告一個銀行儲蓄卡類,
* 包含屬性:賬戶id,餘額balance
* 包含取款 public void withdraw(double money)
* 存款 pubic void save(double money)
* 獲取賬戶資訊: public String getInfo() 可以返回賬戶和餘額
*/
public class SavingsAccount {
private int id;
private double balance = 0;
public SavingsAccount() {
}
public SavingsAccount(int id) {
this.id = id;
}
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;
}
/**
* @param money 取款的錢
*/
public void withdraw(double money) {
if (money <= balance)
balance -= money;
else
System.out.println("餘額不足");
}
/**
* @param money 存款的錢
*/
public void save(double money) {
balance += money;
}
/**
* @return 賬戶資訊
*/
public String getInfo() {
if (getId() == 0) {
return "沒有使用者資訊";
}
return "賬戶ID:" + id +
", 餘額:" + balance;
}
}
//測試類
/*
class test {
}*/
(2) 宣告一個銀行信用卡類,繼承儲蓄卡類
package practice.practice01bank;
/**
* @author lin's
* @program Java_SE
* @description (2)宣告一個銀行信用卡類,繼承儲蓄卡類
* 增加屬性:可透支額度,最多可透支金額
* 重寫存款 public void withdraw(double money),可透支
* 存款 pubic void save(double money),需要恢復可透支額度
* 可修改額度
*/
public class CreditCard extends SavingsAccount {
//額度
private double creditLine;
//最大透支金額
private double maxOverdraft = creditLine;
public CreditCard() {
}
public CreditCard(double creditLine) {
this.creditLine = creditLine;
this.maxOverdraft = creditLine;
}
public CreditCard(int id, double creditLine) {
super(id);
this.creditLine = creditLine;
this.maxOverdraft = creditLine;
}
public double getCreditLine() {
return creditLine;
}
//設定 額度 和 最大透支金額
public void setCreditLine(double creditLine) {
//計算形參額度和當前額度的差值
double flag = creditLine - this.creditLine;
//更改當前額度
this.creditLine = creditLine;
//更改當前最大透支額度
this.maxOverdraft += flag;
}
public double getMaxOverdraft() {
return maxOverdraft;
}
/**
* @return 信用卡客戶的資訊
*/
@Override
public String getInfo() {
if (getId() == 0)
return "沒有使用者資訊";
return "賬戶ID:" + getId() +
", 餘額:" + getBalance() +
", 最大透支金額" + maxOverdraft +
", 信用卡額度:" + creditLine;
}
//其他業務
/**
* 取款(可透支)
*
* @param money 取款的錢
*/
@Override
public void withdraw(double money) {
//取款小於餘額
if (money <= getBalance()) {
//設定餘額,最大透支額度不變
setBalance(getBalance() - money);
// System.out.println("當前餘額" + getBalance() + "最大透支額度" + maxOverdraft);
}
//取款大於餘額,小於餘額與最大透支金額之和
if (money > getBalance() && money < maxOverdraft + getBalance()) {
//重置最大透支額度
maxOverdraft -= money - getBalance();
//重置餘額為0
setBalance(0);
}
}
/**
* @param money 存款的錢
*/
@Override
public void save(double money) {
//存的錢大於透支的金額
if (money > creditLine - maxOverdraft) {
//設定餘額 = 當前餘額 + 存款 - 欠的錢
setBalance(getBalance() + money - (creditLine - maxOverdraft));
maxOverdraft = creditLine;
}
//存入的錢小於透支的金額
else
maxOverdraft += money;
}
}
相關文章
- 買真實銀行儲蓄卡
- 遊戲關卡設計如何入門和練習?遊戲
- 信用卡透支利率會下降嗎?透支利率不會“斷崖式”下降
- 信用卡的使用之二——哪些情況下銀行降額
- 哪裡有賣儲蓄卡
- 新手練習:Python練習題目Python
- 美國銀行和摩根大通禁止與信用卡相關的比特幣交易比特幣
- 中信銀行信用卡失速,合規瑕疵頻現
- 四件套儲蓄卡
- 小米中信銀行推聯名信用卡 開卡可得小米商城代金券
- (前++) 和 (後++)的練習題
- shell練習題
- Python 練習題Python
- SQL練習題SQL
- mysql練習題MySql
- TypeScript 練習題TypeScript
- NFS練習題NFS
- 練習題-9
- 富國銀行資料中心冒出濃煙 信用卡、ATM與網銀停止工作
- 浦發銀行首推AR版信用卡,集齊龍珠可召喚神龍!
- 習題練習題-第二題
- eMarketer:14%的美國信用卡使用者有非接觸式銀行卡
- Pytorch:單卡多程式並行訓練PyTorch並行
- 銀行卡識別、移動端銀行卡識別、銀行卡識別SDK
- markdown 使用練習練習
- 銀行卡包|四件套銀行卡
- 一手全新建設銀行銀行卡
- python練習題解析Python
- 程式練習題(2)
- linux練習題(二)Linux
- 銀行套卡
- 銀行盾卡
- 檢視、儲存過程以及許可權控制練習儲存過程
- 程式設計練習程式設計
- 銀行卡卡套一手
- 模擬購物和信用卡
- 新浪財經& 51信用卡:2018年信用卡行業報告(附下載)行業
- U7-11課綜合練習+12課階段測評練習——複習練習題目