首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找出银行账户的总数

找出银行账户的总数
EN

Stack Overflow用户
提问于 2014-08-31 14:27:49
回答 2查看 3.4K关注 0票数 0

我是个学生,刚学完第一年的java,就有一个问题:“创建一种方法,把银行里的全部钱还回来?”在考试中。我已经包括了下面的课程。我得到的大多数方法都是正确的,包括addAccount()、getBalance()、撤()等等,但不确定这个方法的答案是什么。这可能比我想象的简单和简单(我必须使用一个或两个类似的for循环),但只是为了澄清加总的正确方法。这也是在一家杂货店的c#任务中提出的,在那里,顾客从不同的产品(如水果、蔬菜等)中购买商品,并且必须计算总计。

谢谢你提前..。

保罗

代码:超类:

代码语言:javascript
复制
    /**
   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; 
    }
}

子类支票帐户:

代码语言:javascript
复制
    /**
   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; 
    }

}

子类储蓄帐户:

代码语言:javascript
复制
    /**
   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; 
    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-31 14:40:14

你是正确的。

如果您有一个BankAccounts的集合或它的子类,您可以在一个for循环中简单地将它们相加。

假设您有这样的东西(我假设有一个Bank对象包含一个函数,它以某种方式给了我所有的帐户):

代码语言:javascript
复制
Collection<BankAccount> accounts = Bank.getAccounts();
Double sum = 0.0;
for (BankAccount account : accounts) {
    sum += account.getBalance();
}
票数 0
EN

Stack Overflow用户

发布于 2014-08-31 14:35:44

你在正确的轨道上思考一个循环。把余额加起来。

代码语言:javascript
复制
public static double totalBalance(Collection<BankAccount> accounts){
    double sum = 0.0;
    for(BankAccount b : accounts){
        sum += b.getBalance();
    }
    return sum;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25592920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档