我正在爲我創建的儲錢罐類寫驅動程序類。這個想法是,它應該添加不同類型的硬幣(用戶輸入),然後總計美分並顯示它們,直到用戶輸入「X」。我認爲我的代碼是正確的,但是有一個奇怪的問題,如果我在代碼中使用「countMoney」訪問器,它會告訴我驅動程序類中的所有變量都是未初始化的。如果我刪除它,Eclipse沒有顯示錯誤。我已經打印了下面的源代碼和驅動程序類:驅動程序類奇怪的錯誤
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爲什麼這是一個很好的做法? –
這對於其他人來說很清楚你打算如何。 –