我已经上了几个星期的java课了,我的一项作业似乎搞不清楚。这是任务
“显示由三种曲奇组成的菜单。提示用户使用GetGoodInt(公共静态int GetGoodInt(int tLow,int tHigh) ),如果输入过高,说明输入过高,说明输入过低,说到低,如果不是int显示错误,则提示用户使用哪种饼干。创建一个曲奇,给烤箱煮,然后给一个人吃。像这个这样的文本加上黑体,然后声明是一个既必需又不可改变的类!”
Cookie
烘箱
Person
样本输出:
What type of cookie would you like?
1) Chocolate chip
2) Peanut butter
3) Oatmeal raisin
4
Not a choice.
r
Not a number
3
That was a great Oatmeal raisin cookie."到目前为止,这就是我编写的代码,但我在假设是构造函数时遇到了问题,到目前为止,我尝试过的所有操作都给了我一个运行时错误。
这是我所有的代码
package mainpackage;
public class Cookie
{
public Boolean mCooked;
public String mFlavor;
public Cookie(String tFlavor)
{
tFlavor=mFlavor.toString();
}
public String toString()
{
int i = Week9Jar.Input.GetGoodInt(1, 3);
String tFlavor= Integer.toString(i);
if(tFlavor=="1")
mFlavor="Chocolate Chip";
else if(tFlavor=="2")
mFlavor="Peanut Butter";
else if(tFlavor=="3")
mFlavor="Oatmeal Raisin";
return mFlavor;
}
}
package mainpackage;
public class Oven
{
void Cook(Cookie tCookie)
{
tCookie.mCooked=true;
}
}
package mainpackage;
public class main {
public static void main(String[] args) {
// Week 9 Homework part I
Cookie tCookie=null;
Oven tOven= new Oven();
Person tPerson = new Person();
System.out.println("What type of Cookie would you like?");
System.out.println("1) Chocolate Chip");
System.out.println("2) Peanut Butter");
System.out.println("3) Oatmeal Raisin");
//get Type from user
tCookie=new Cookie(Week9Jar.Input.GetGoodInt(1, 3));
tOven.Cook(tCookie);
tPerson.EatCookie(tCookie);
}
}发布于 2014-04-18 05:07:16
Cookie的构造函数是错误的:您将tFlavor作为参数并为其赋值,在执行构造函数后,该值将丢失。你可能想要的是:
public Cookie(String tFlavor) {
mFlavor = tFlavor;
}您不需要对toString对象调用String:它们已经是字符串了!
另外,访问来自另一个类的类的数据成员也不是很好的做法,即使它来自同一个包:
public void Cook(Cookie cookie) {
cookie.setCooked(true);
}并在类setCooked中添加一个Cookie方法。
public void setCooked(boolean b) {
mCooked = b;
}https://stackoverflow.com/questions/23147608
复制相似问题