首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cookie Java项目

Cookie Java项目
EN

Stack Overflow用户
提问于 2014-04-18 04:57:32
回答 1查看 189关注 0票数 0

我已经上了几个星期的java课了,我的一项作业似乎搞不清楚。这是任务

“显示由三种曲奇组成的菜单。提示用户使用GetGoodInt(公共静态int GetGoodInt(int tLow,int tHigh) ),如果输入过高,说明输入过高,说明输入过低,说到低,如果不是int显示错误,则提示用户使用哪种饼干。创建一个曲奇,给烤箱煮,然后给一个人吃。像这个这样的文本加上黑体,然后声明是一个既必需又不可改变的类!”

Cookie

  • 布尔mCooked
  • 字符串mFlavor
  • Cookie( String tFlavor ) //这是一个构造函数。注意,当您拥有它时,它将不允许您使用延迟的默认构造函数。
  • 字符串toString() //允许您将cookie输出到控制台。千万不要手动调用。

烘箱

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

Person

  • void EatCookie( Cookie tCookie ) //如果它是煮熟的,输出它的类型和它有多好。如果不是,打印一句关于沙门氏菌的症状。

样本输出:

代码语言:javascript
复制
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."

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

这是我所有的代码

代码语言:javascript
复制
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);

}

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-18 05:07:16

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

代码语言:javascript
复制
public Cookie(String tFlavor) {
    mFlavor = tFlavor;
}

您不需要对toString对象调用String:它们已经是字符串了!

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

代码语言:javascript
复制
public void Cook(Cookie cookie) {
    cookie.setCooked(true);
}

并在类setCooked中添加一个Cookie方法。

代码语言:javascript
复制
public void setCooked(boolean b) {
    mCooked = b;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23147608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档