【发布时间】:2015-06-13 16:09:42
【问题描述】:
我正在为我创建的存钱罐类编写一个驱动程序类。这个想法是,它应该添加不同类型的硬币(用户输入),然后合计美分并显示它们,直到用户输入“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' andcents` 应全部设置为零。 -
@BrettWalker 为什么这样做是个好习惯?
-
它让别人很清楚你的意图。