java - 为圣诞节烘焙 cookies 的程序,类(class)无法正常运行

标签 java class methods

我正在尝试制作一个程序,在其中输入成分的名称和数量以及 toastr 的温度。该程序应该将它们混合在一起并告诉我是否可以烘烤它们。

Zutat 类是成分的类,包含名称和数量。 Teig 类用于混合所有成分制作面团。它注明了每种成分的名称和用于制作面团的数量,最后还写着“制作面团”之类的内容。 Class Ofen 是专门为 toastr 设计的。它应该在 X 温度下 cooking 面团。 Weihnachtsbaeckerei 类是用来将所有这些组合在一起的类。首先添加配料,然后制作面团并在一定温度下烘烤。如果温度低于200,则屏幕上显示“Cookies are beautiful”,否则“You burnt those”。

我是使用类和方法进行编程的新手,并且有点沉迷于 Weihnachtsbaeckerei 类。任何人都可以帮助我解决这个问题而不需要过多改变其他类吗?

提前谢谢您!

 public class aufgabe12 {

public class Zutat{
    public String Namen;
    public int Menge;
} 

public class Teig{
    public boolean geknetet;
    public void zutatHinzufugen(String Zutat){ 
        System.out.println("Zutat hinzugefuegf: " + Zutat.Namen + " (" + Zutat.Menge + "g)");
    }
    public void kneten(){
        geknetet = true;
        System.out.println("Teig geknetet");
    }
}

public class Ofen{
    public boolean backen(String Teig, int Temperatur){
        if(Temperatur<200){
            return(true);
        } else {
            return(false);
        }
    }
    public void kneten(){}
}

public void main(String[] args){
    public class Weihnachtsbaeckerei{
        Zutat zutat1 = new Zutat();
        Zutat zutat2 = new Zutat();
        Zutat zutat3 = new Zutat();
        zutat1.Namen = "Mehl";
        zutat1.Menge = 200;
        zutat2.Namen = "Zucker";
        zutat2.Menge = 100;
        zutat3.Namen = "Eier";
        zutat3.Menge = 150;
        zutatHinzufugen(zutat1);
        zutatHinzufugen(zutat2);
        zutatHinzufugen(zutat3);
        kneten();
        ofen(zutat1, 180);
        ofen(zutat2, 180);
        ofen(zutat3, 180);
        if(ofen==true){
            System.out.println("Hmmmm lecker");
        } else {
            System.out.println("Leider schief gegangen");
        }
    }
}

有错误的行是:

System.out.println("Zutat hinzugefuegf: " + Zutat.Namen + " (" + Zutat.Menge + "g)");
zutat1.Namen = "Mehl";
zutat1.Menge = 200;
zutat2.Namen = "Zucker";
zutat2.Menge = 100;
zutat3.Namen = "Eier";
zutat3.Menge = 150;
zutatHinzufugen(zutat1);
zutatHinzufugen(zutat2);
zutatHinzufugen(zutat3);

最佳答案

圣诞快乐。请考虑我对您的代码所做的更改。

首先 - 你的 Teig 需要接受 Zutat,而不是字符串:

        // Add a Zutat, not a String
        public void zutatHinzufugen(Zutat dazu) {
            System.out.println("Zutat hinzugefuegf: " + dazu.Namen + " (" + dazu.Menge + "g)");
        }

然后,您将想要烘烤整个 Teig,而不是单个 Zutaten:

    public class Ofen {
        // You bake the Teig, not the Zutat
        public boolean backen(Teig teig, int Temperatur) {
            if (Temperatur < 200) {
                return (true);
            } else {
                return (false);
            }
        }

    }

如果 Teig 不是 gerührt,您可能需要考虑抛出异常。

最后,在你的 main 中创建一个 Teig,创建一个 Ofen 并将所有内容放在一起:

public void main(String[] args) {

        Teig teig = new Teig();

        Zutat zutat1 = new Zutat();
        Zutat zutat2 = new Zutat();
        Zutat zutat3 = new Zutat();
        zutat1.Namen = "Mehl";
        zutat1.Menge = 200;
        zutat2.Namen = "Zucker";
        zutat2.Menge = 100;
        zutat3.Namen = "Eier";
        zutat3.Menge = 150;

        teig.zutatHinzufugen(zutat1);
        teig.zutatHinzufugen(zutat2);
        teig.zutatHinzufugen(zutat3);
        teig.kneten();

        //You need an ofen
        Ofen ofen = new Ofen();

        //You bake only once
        if (ofen.backen(teig, 180)) {
            System.out.println("Hmmmm lecker");
        } else {
            System.out.println("Leider schief gegangen");
        }
    }

这是完成的代码:

public class WeihnachtsbaeckereiTest {

    public class Zutat {
        public String Namen;
        public int Menge;
    }

    public class Teig {

        public boolean geknetet;

        // Add a Zutat, not a String
        public void zutatHinzufugen(Zutat dazu) {
            System.out.println("Zutat hinzugefuegf: " + dazu.Namen + " (" + dazu.Menge + "g)");
        }

        public void kneten() {
            geknetet = true;
            System.out.println("Teig geknetet");
        }
    }

    public class Ofen {
        // You bake the Teig, not the Zutat
        public boolean backen(Teig teig, int Temperatur) {
            if (Temperatur < 200) {
                return (true);
            } else {
                return (false);
            }
        }

    }

    public void main(String[] args) {
        Teig teig = new Teig();
        Zutat zutat1 = new Zutat();
        Zutat zutat2 = new Zutat();
        Zutat zutat3 = new Zutat();
        zutat1.Namen = "Mehl";
        zutat1.Menge = 200;
        zutat2.Namen = "Zucker";
        zutat2.Menge = 100;
        zutat3.Namen = "Eier";
        zutat3.Menge = 150;

        teig.zutatHinzufugen(zutat1);
        teig.zutatHinzufugen(zutat2);
        teig.zutatHinzufugen(zutat3);
        teig.kneten();

        //You need an ofen
        Ofen ofen = new Ofen();

        //You bake only once
        if (ofen.backen(teig, 180)) {
            System.out.println("Hmmmm lecker");
        } else {
            System.out.println("Leider schief gegangen");
        }
    }
}

关于java - 为圣诞节烘焙 cookies 的程序,类(class)无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34336037/

相关文章:

java - 发送多个非常小的数据包或更少的大数据包?

java - hibernate java.lang.NoClassDefFoundError : org/hibernate/util/DTDEntityResolver

class - Kivy - 另一个屏幕上的 slider 类值更改

javascript - 将 .apply() 与 'new' 运算符一起使用。这可能吗?

c++ - 了解类构造函数的静态转换

methods - Racket - 如何在子类中的重写方法中访问父类(super class)方法

methods - Webkit 桌面通知 - 没有方法 'createHTMLNotification'

java - 停止守护进程不终止子java进程

C++ 单例与静态方法

Java:线程 "main"java.lang.NoClassDefFoundError 中出现异常:org/slf4j/LoggerFactory