Я пишу класс водителя для класса копировального банка, который я создал. Идея состоит в том, что предполагается добавить различные типы монет (ввод пользователя), а затем суммировать центы и отображать их до тех пор, пока пользователь не добавит «X». Я думаю, что у меня правильный код, но есть странная проблема, если я использую в коде код «countMoney», он говорит мне, что все мои переменные в классе драйвера не инициализированы. Если я удалю его, ошибок Eclipse нет. Я напечатал свой источник и класс водителя ниже:Weird error on driver class
package piggy;
/**
* @author Kevin
*
*/
import java.util.Scanner;
import piggy.PiggyBank;
public class PiggyBankTester {
/**
* @param args
*/
public static void main(String[] args) {
String num = "str", num1;
int count = 0;
int money;
Scanner scan = new Scanner(System.in);
Scanner scan2 = new Scanner(System.in);
PiggyBank total = new PiggyBank();
System.out.println("Welcome to the Piggy Bank Tester");
System.out.println("What type of coin to add (Q, H, D or X to exit)?");
num1 = scan.nextLine();
num = num1.toUpperCase();
{
if (num.equals("X"))
System.out.println("Goodbye.");
else if (num != "X")
{
System.out.println("How many do you wish to add?");
count = scan.nextInt();
if (num.equals("Q"))
total.addQuarters(count);
else if (num.equals("H"))
total.addHalfDollars(count);
else if (num.equals("D"))
total.addDollars(count);
else if (num.equals("X"))
System.out.println("Goodbye.");
}
}
{
total.calculate();
money = total.countMoney();
System.out.println("The piggy bank now contains " + money + " cents.");
}
}
}
Это хорошая практика при инициализации экземпляров для явного задания значения всех переменных экземпляра. В вашем случае «numquarters», «numhalfs», «numdollars» и «cents» должны быть установлены на ноль. –
@BrettWalker Почему это хорошая практика? –
Это делает очень понятным для других то, что вы намерены. –