中易网

java的练习题

答案:1  悬赏:40  
解决时间 2021-01-14 18:48
java的练习题
最佳答案
package com.ajie.bank;

import java.util.ArrayList;
import java.util.List;


public class Bank {

private List accounts;

public Bank() {
accounts = new ArrayList();
}

public synchronized boolean addAccount(Account account) {
if (null == account) {
return false;
}
accounts.add(account);
return true;
}

public synchronized boolean removeAccount(Account account) {
if (null == account) {
return false;
}
accounts.remove(account);
return true;
}

public Account searchAccount(String accountId) {
if (null == accountId) {
return null;
}
for (Account account : accounts) {
if (null == account.getId()) {
continue;
}
if (accountId.equals(account.getId())) {
return account;
}
}
return null;
}

public double getAmountOfBalance() {
if (null == accounts || accounts.isEmpty()) {
return 0;
}
double ret = 0;
for (Account account : accounts) {
if (null == account) {
continue;
}
ret += account.getBalance();
}
return ret;
}

public double getAmmoutOfOverdraw() {
if (null == accounts || accounts.isEmpty()) {
return 0;
}
double ret = 0;
for (Account account : accounts) {
if (null == account) {
continue;
}
if (!(account instanceof CreditAccount)) {
continue;
}
CreditAccount sa = (CreditAccount) account;
ret += sa.getOverdrawLimit(); // FIXME
}
return ret;
}

}package com.ajie.bank;


public class Account {
private String id;
private double balance;

public Account(String id) {
this(id, 0);
}

public Account(String id, double balance) {
this.id = id;
this.balance = balance;
}

public synchronized void deposit(double amout) {
if (0 == amout) {
return;
}
balance += amout;
}

public synchronized boolean withdraw(double amount) {
if (0 == amount) {
return true;
}
balance -= amount;
return true;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public double getBalance() {
return balance;
}

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

}package com.ajie.bank;


public class SaveAccount extends Account {

public SaveAccount(String id) {
this(id, 0);
}

public SaveAccount(String id, double balance) {
super(id, balance);
}

public boolean withdraw(double amount) {
return super.withdraw(amount);
}

}package com.ajie.bank;


public class CreditAccount extends Account {

private double overdrawLimit;

public CreditAccount(String id) {
this(id, 0);
}

public CreditAccount(String id, double balance) {
this(id, balance, 10000);
}

public CreditAccount(String id, double balance, double overdrawLimit) {
super(id, balance);
this.overdrawLimit = overdrawLimit;
}

public synchronized boolean withdraw(double amount) {
if (0 == amount) {
return false;
}
double balance = getBalance();
if (balance >= amount) {
balance -= amount;
} else {
double over = amount - balance;
overdrawLimit -= over;
}
return true;
}

public double getOverdrawLimit() {
return overdrawLimit;
}

public void setOverdrawLimit(double overdrawLimit) {
this.overdrawLimit = overdrawLimit;
}

}package com.ajie.bank;


public class TestBank {

public static void main(String[] args) {
Bank bank = new Bank();

CreditAccount creditAccount1 = new CreditAccount("1000001", 1000, 5000);
CreditAccount creditAccount2 = new CreditAccount("1000002", 1000, 5000);
CreditAccount creditAccount3 = new CreditAccount("1000003", 1000, 5000);
CreditAccount creditAccount4 = new CreditAccount("1000004", 1000, 5000);
CreditAccount creditAccount5 = new CreditAccount("1000005", 1000, 5000);

SaveAccount saveAccount1 = new SaveAccount("2000001", 1000);
SaveAccount saveAccount2 = new SaveAccount("2000002", 1000);
SaveAccount saveAccount3 = new SaveAccount("2000003", 1000);
SaveAccount saveAccount4 = new SaveAccount("2000004", 1000);
SaveAccount saveAccount5 = new SaveAccount("2000005", 1000);

bank.addAccount(creditAccount1);
bank.addAccount(creditAccount2);
bank.addAccount(creditAccount3);
bank.addAccount(creditAccount4);
bank.addAccount(creditAccount5);

bank.addAccount(saveAccount1);
bank.addAccount(saveAccount2);
bank.addAccount(saveAccount3);
bank.addAccount(saveAccount4);
bank.addAccount(saveAccount5);

System.out.println(bank.getAmountOfBalance());

}
}纯手敲,如果帮助,请采纳一下
追问
我想问一下bank类最后添加了这几行了,要如何改
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
剑灵客户端缺少一个文件
0.8的钓鱼线 能钓多大的鱼 10多斤的钓的起吗
圆锥滚子轴承30000型的02,03系列等的区别是
国足要是出现了将来正了就前三强了。。。
电脑的蓝牙有用吗,是干吗的啊?
48/X-5=32/20-X 求X值? 详细写出解
这样组机好吗?有没有人给个参考
名都商业购物广场地址在什么地方,想过去办事
经济两个字怎么写好看
求一本重生的小说里面的男主角姓季
6MW的容量能用10KV设计么,10KV的电网最大电
三朵玫瑰花代表的花语是什么意思
留学回国两年后还能办理留学回国人员证明吗
CAD同样的线宽0.09mm为什么别人的看起来很粗
骆驼祥子》还写了其他各色人物,如残忍霸道的
推荐资讯
用两三件事来写身边的一个人的作文,急求啊
变形金刚5 资源
张小盒的同事们
商人梦见货物买了很多是什么意思
这种夹子叫什么名称?什么作用?
说知道中航工业成飞都有什么要求,什么待遇?
昂首挺胸的昂,可以组什么词
峰谷电表的峰谷时段如何设置,自己调,能调吗
我的女儿喊我的大姨妈喊什么
月无日不明,人无诚不成是什么意思
合浦县廉州镇环城中学怎么去啊,有事要去办理
独立基础和条形基础交界处要互相锚固吗?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?