我是个学生,刚学完第一年的java,就有一个问题:“创建一种方法,把银行里的全部钱还回来?”在考试中。我已经包括了下面的课程。我得到的大多数方法都是正确的,包括addAccount()、getBalance()、撤()等等,但不确定这个方法的答案是什么。这可能比我想象的简单和简单(我必须使用一个或两个类似的for循环),但只是为了澄清加总的正确方法。这也是在一家杂货店的c#任务中提出的,在那里,顾客从不同的产品(如水果、蔬菜等)中购买商品,并且必须计算总计。
谢谢你提前..。
保罗
代码:超类:
/**
A bank account has a balance that can be changed by
deposits and withdrawals.
*/
public class BankAccount
{
//Declare balance field
private double balance;
/**
Constructs a bank account with a zero balance.
*/
public BankAccount()
{
balance = 0;
}
/**
Constructs a bank account with a given balance.
@param initialBalance the initial balance
*/
public BankAccount(double initialBalance)
{
balance = initialBalance;
}
/**
Deposits money into the bank account.
@param amount the amount to deposit
*/
public void deposit(double amount)
{
balance = balance + amount;
}
/**
Withdraws money from the bank account.
@param amount the amount to withdraw
*/
public void withdraw(double amount)
{
if (balance >= amount)
{
balance = balance - amount;
}
else
{
System.out.println("Withdrawal error: insufficent funds");
}
}
/**
Gets the current balance of the bank account.
@return the current balance
*/
public double getBalance()
{
return balance;
}
/**
Transfers money from the bank account to another account
@param amount the amount to transfer
@param other the other account
*/
public void transfer(double amount, BankAccount other)
{
withdraw(amount);
other.deposit(amount);
}
public String toString()
{
return "Your Balance: "+ balance;
}
}子类支票帐户:
/**
A checking account that charges transaction fees.
*/
public class CheckingAccount extends BankAccount
{
private int transactionCount;
private int transaction;
private static final int FREE_TRANSACTIONS = 0;
private static final double TRANSACTION_FEE = 2.0;
/**
Constructs a checking account with a given balance.
@param initialBalance the initial balance
*/
public CheckingAccount(double initialBalance)
{
// Construct superclass
super(initialBalance);
// Initialize transaction count
transactionCount = 0;
}
public void deposit(double amount)
{
transactionCount++;
// Now add amount to balance
super.deposit(amount);
}
public void withdraw(double amount)
{
transactionCount++;
// Now subtract amount from balance
super.withdraw(amount);
}
/**
Deducts the accumulated fees and resets the
transaction count.
*/
public void deductFees()
{
if (transactionCount > FREE_TRANSACTIONS)
{
double fees = TRANSACTION_FEE *
(transactionCount - FREE_TRANSACTIONS);
super.withdraw(fees);
}
transaction = transactionCount;
}
public String toString()
{
return super.toString() + "\t Your Transactions: "+ transaction;
}
}子类储蓄帐户:
/**
An account that earns interest at a fixed rate.
*/
public class SavingsAccount extends BankAccount
{
private double interestRate;
/**
Constructs a bank account with a given interest rate.
@param rate the interest rate
*/
public SavingsAccount(double rate)
{
interestRate = rate;
}
/**
Constructs a bank account with a given interest rate.
@param rate the interest rate
*/
public SavingsAccount(double rate, double initBalance)
{
super(initBalance);
interestRate = rate;
}
/**
Adds the earned interest to the account balance.
*/
public void addInterest()
{
double interest = getBalance() * interestRate + 100;
deposit(interest);
}
public String toString()
{
return super.toString() + "\t Your Interest rate: "+ interestRate;
}
}发布于 2014-08-31 14:40:14
你是正确的。
如果您有一个BankAccounts的集合或它的子类,您可以在一个for循环中简单地将它们相加。
假设您有这样的东西(我假设有一个Bank对象包含一个函数,它以某种方式给了我所有的帐户):
Collection<BankAccount> accounts = Bank.getAccounts();
Double sum = 0.0;
for (BankAccount account : accounts) {
sum += account.getBalance();
}发布于 2014-08-31 14:35:44
你在正确的轨道上思考一个循环。把余额加起来。
public static double totalBalance(Collection<BankAccount> accounts){
double sum = 0.0;
for(BankAccount b : accounts){
sum += b.getBalance();
}
return sum;
}https://stackoverflow.com/questions/25592920
复制相似问题