2015-12-22 4 views
-3

В. В серии заявлений переместите все деньги на счетах Ник - как с проверкой, так и сбережениями - на текущий счет Кэрол. Это должно оставить Ника без денег в конце, то есть на обоих его счетах есть 0 денег. Это можно сделать несколькими способами. Предложение состоит в том, чтобы использовать одну или несколько промежуточных переменных для хранения значений из учетной записи Ника, а затем внести это значение в текущую учетную запись Кэрол. Примечание. Вы должны получить значения из учетной записи Ника, вызывая методы, определенные в классе BankAccount. Распечатайте отчет о проверке и сведениях о сбережениях на счетах Ник и Кэрол, используя соответствующий метод в классе BankAccount.ошибка: недействительный тип здесь не разрешен

А.

общественного класса BankAccount {

private String name; 
    private int checkMoney; 
    private int saveMoney; 

    public BankAccount(String who, int checking, int saving){ 
    name = who; 
    checkMoney = checking; 
    saveMoney = saving; 
    } 

    public String getAccountName(){ 
    return name; 
    } 

    public int getCheckMoney(){ 
    return checkMoney; 
    } 

    public int getSaveMoney(){ 
    return saveMoney; 
    } 

    public void makeCheckingDeposit(int amt){ 
     checkMoney = checkMoney + amt; 
    } 

    public void makeSavingsDeposit(int amt){ 
    saveMoney = saveMoney + amt; 
    } 

    public void makeCheckingWithdrawal(int amt){ 
    if(checkMoney >= amt) 
    checkMoney = checkMoney - amt; 
    } 

    public void makeSavingsWithdrawal(int amt){ 
    if(saveMoney >= amt) 
    saveMoney = saveMoney - amt; 
    } 

    //prints name and both account balances to the console 
    public void printReport() { 
    System.out.println(name + " checking: " + checkMoney + " savings: " + saveMoney); 
    } 

}

  1. общественного класса BankingDriver {

  2. государственной статической силы основных (String [] арг) {

  3. BankAccount nicksAcct = новый BankAccount («Ник», 450, 550);

  4. БанкАкстонские колядкиAcct = новый BankAccount («Кэрол», 600, 700);

  5. int nicksCheckingMoney = nicksAcct.getCheckMoney();

  6. int nicksSaveMoney = nicksAcct.getSaveMoney();

  7. int deposit = (nicksAcct.makeCheckingWithdrawal (nicksCheckingMoney) + nicksAcct.makeSavingsWithDrawal (nicksSaveMoney));

  8. carolsAcct.makeCheckingDeposit (депозит);

  9. nicksAcct.printReport();

  10. carolsAcct.printReport();

    }}

Линия 7 из BankDriver продолжает давать мне 'пустота' типа здесь не допускается ошибка. Может кто-то объяснить мне, почему это делается?

+1

'makeCheckingWithdrawal' и' makeSavingsWithdrawal' не возвращают значения, которые вы можете добавить вместе: это методы 'void'. –

ответ

1

Вы не можете добавить результаты по двум методам void. Например:

private static void foo() {} 
private static void bar() {} 

public static void main(String... args) { 
    System.out.println(foo() + bar()); 
} 

Это, надеюсь, явно бессмысленно. Фактически, вы не можете ничего сделать с помощью методов void: вы можете только вызвать метод.

Если вы хотите добавить результаты makeCheckingWithdrawal и makeSavingsWithdrawal методов, вам нужно будет сделать их возвращать числовой тип, например:

public int makeCheckingWithdrawal(int amt) { ... } 
public int makeSavingsWithdrawal(int amt) { ... } 

Значение возвращения из этих методов до вас, в зависимости от ваших требований.

+0

Я понимаю, что вы сказали, но как вы думаете, я должен решить эту проблему? – Subhan