我有这个程序,我一直致力于一个翻转硬币并计算它落在的头/尾数量的类。我终于让它正常工作,但是我需要实现get和set。我有3个硬币,镍,四分之一和一角硬币。我必须使用get set为它们赋值并创建一个循环,重复翻转三个硬币。每次它落在头上时,它会将特定硬币的值加到一个池中(总计),并且当它变得等于或大于一美元时,循环应该结束。这是我的硬币类,它继承了另一个类的方法(所有工作)。问题是,一旦我得到并将值设置为我的私有整数,我如何在我创建的while循环中自由使用它们,所以我也可以添加它们总数? (我为不完整的循环道歉,我只是变得非常迷茫)提前感谢任何帮助!
好的,所以我已经摆脱了所有的错误,感谢大家的帮助!现在的问题是,当我运行代码时,循环只是继续(这似乎至少是这样,因为它甚至不在循环后打印print语句)我做错了什么?我的一部分想知道它是否没有正确地继承flip方法,但它是从已经在另一个程序中使用它的类继承它并且它工作正常。
public class Coin extends GenericCoin {
private int Dime;
private int Nickel;
private int Quarter;
public Coin() {
// TODO Auto-generated constructor stub
}
public int getDime() {
return Dime;
}
public void setDime(int dime) {
this.Dime = 10;
}
public int getNickel() {
return Nickel;
}
public void setNickel(int nickel) {
Nickel = 5;
}
public int getQuarter() {
return Quarter;
}
public void setQuarter(int quarter) {
Quarter = 25;
}
public static void main(String[] args) {
int total = 0;
Coin dime = new Coin();
Coin nickel = new Coin();
Coin quarter = new Coin();
int d = dime.getDime();
int n = nickel.getNickel();
int q = quarter.getQuarter();
while(total < 100) {//loop that will flip the 3 coins and add to total
dime.flip();
if(dime.headFlip1()) {
total = total + d;
}
nickel.flip();
if(nickel.headFlip2()) {
total = total + n;
}
quarter.flip();
if(quarter.headFlip3()){
total = total + q;
}
}
System.out.println(total + ".00");
}
}
答案 0 :(得分:0)
首先,你应该在每个硬币上调用setter方法,这将初始化它们。默认情况下,类的实例变量的值为0(对于整数)。或者更好的是,如果要对对象进行硬编码,请使用构造函数直接初始化对象。
其次,total++ Dime
语法错误。 total++
本身就是一个完整的句子,应以分号结尾,例如。总++;
您想要将Dime的特定值添加到总计中。然后你应该做
total = total + CoinObject.getDime(); or
total += CoinObject.getDime();
total++
只是将total变量的值增加1,
例如if total = 0
,然后总计++将其设置为1。
答案 1 :(得分:0)
您尚未调用Setter方法。除非您调用它们,否则Dime
,Nickel
和Quarter
的值将保持未初始化状态,因此您无法真正添加所需的值。所以考虑在开始循环之前调用它们。
其次, setter 函数用于设置传递给它的值。例如,当您将quarter
传递给setQuarter()
时,通常的做法是使用变量Quarter
中的值初始化成员变量quarter
。实际上,你的setter函数将是这样的:
public void setQuarter(int quarter) {
Quarter = quarter;
}
并且main()
函数对此方法的调用将是
quarter.setQuarter(25);
另外,我假设您有headFlip1()
,headFlip2()
和headFlip3()
的定义,但它们不会出现在代码段中。