我进入java课程几周,而且我的作业之一似乎无法弄明白。这是作业
“显示三种cookie的菜单。使用GetGoodInt提示用户他们想要什么样的cookie(公共静态int GetGoodInt(int tLow,int tHigh)如果输入太高则说高,如果它太低,说低,如果不是int显示错误)jar。 创建一个cookie,将它交给烤箱烹饪,然后交给一个人吃它。 !文本粗体如这然后声明后面是一个既需要又不可更改的类!
曲奇
boolean mCooked
String mFlavor
Cookie(String tFlavor)//这是一个构造函数。请注意,如果这样,它将不允许您使用惰性默认构造函数。
String toString()//这使您可以将cookie输出到控制台。切勿手动调用。
烤箱
人
示例输出:
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."
这是我到目前为止所编写的内容,但我遇到了我认为isconstructor的问题,到目前为止我所尝试的一切都给了我一个运行时错误。
这是我的所有代码
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);
}
}
答案 0 :(得分:2)
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;
}