CookieJava项目

CookieJava项目,java,Java,我已经上了几周的java课,其中一项家庭作业我似乎搞不懂。这是作业 “显示包含三种cookie的菜单。如果输入太高,则使用GetGoodInt(公共静态int GetGoodInt(int-tLow,int-tHigh))jar提示用户需要哪种cookie,如果输入太低,则使用GetGoodInt(公共静态int GetGoodInt(int-tLow,int-tHigh))jar。 制作一块饼干,把它放到烤箱里煮,然后给人吃。 !文本加粗,如此后接声明是一个必需且不可更改的类 Cookie

我已经上了几周的java课,其中一项家庭作业我似乎搞不懂。这是作业

“显示包含三种cookie的菜单。如果输入太高,则使用GetGoodInt(公共静态int GetGoodInt(int-tLow,int-tHigh))jar提示用户需要哪种cookie,如果输入太低,则使用GetGoodInt(公共静态int GetGoodInt(int-tLow,int-tHigh))jar。 制作一块饼干,把它放到烤箱里煮,然后给人吃。 !文本加粗,如后接声明是一个必需且不可更改的类

Cookie

  • 布尔mCooked

  • 串珠

  • Cookie(String tFlavor)//这是一个构造函数。请注意,当您拥有此构造函数时,它不允许您使用延迟默认构造函数

  • String toString()//这允许您将cookie输出到控制台。切勿手动调用它

烤箱

  • void Cook(Cookie tCookie)//只是将mCooked设置为true

  • void EatCookie(Cookie tCookie)//如果是煮熟的,则输出类型和质量。如果不是,则打印一句关于沙门氏菌症状的句子
样本输出:

这是我到目前为止所编写的代码,但我在假设为构造函数时遇到了问题,到目前为止,我所尝试的一切都给了我一个运行时错误

这是我所有的代码

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);

}

}

您的
Cookie
构造函数是错误的:您将
tFlavor
作为参数并为其赋值,执行构造函数后,该值将丢失。您可能需要的是:

public Cookie(String tFlavor) {
    mFlavor = tFlavor;
}
您不需要对
String
对象调用
toString
:它们已经是字符串了

此外,从另一个类访问一个类的数据成员不是一个好做法,即使它来自同一个包:

public void Cook(Cookie cookie) {
    cookie.setCooked(true);
}
并在类中添加
setCooked
方法
Cookie

public void setCooked(boolean b) {
    mCooked = b;
}
你忘了检查饼干是怎么煮的。你可能会得到烧焦的饼干,必须处理掉。
public void setCooked(boolean b) {
    mCooked = b;
}