我的代码:
public class Kuh {
private String name;
private boolean istSatt;
public Kuh(String name, boolean istSatt) {
}
public double gibMilch() {
if (istSatt == true) {
System.out.println(10.0);
return 10.0;
} else {
System.out.println(3.0);
return 3.0;
}
}
public void grasen() {
istSatt = true;
}
public static void main(String[] args) {
Kuh Frida = new Kuh("Frida", true);
Frida.gibMilch();
Frida.grasen();
Frida.gibMilch();
}
}
我的问题:创建时将对象“ Frida”的“ istSatt”设置为“ true”。因此,当使用方法“ gibMilch”时,应将其输出为“ 10”。尽管如此,它还是输出“ 3”,就像布尔值是假的一样,即使我将其设置为true也是如此。使用“ grasen”后仅输出“ 10”。 我做错了什么?
答案 0 :(得分:3)
您没有将构造函数参数分配给这些字段。
public Kuh(String name, boolean istSatt) {
this.name = name;
this.istSatt = istSatt;
}
答案 1 :(得分:0)
您需要在构造函数中设置类变量值:
public Kuh(String name, boolean istSatt) {
this.name = name;
this.istSatt = istSatt;
}
this
指的是您要实例化的类。
答案 2 :(得分:0)
请尝试执行此操作,因为在呼叫Kuh Frida = new Kuh(“ Frida”,true);时似乎没有分配任何内容。
即
public class Kuh {
private String name;
private boolean istSatt;
public Kuh(String name, boolean istSatt) {
this.istSatt=istSatt;
this.name=name;
}
public double gibMilch() {
if (istSatt) {
System.out.println(10.0);
return 10.0;
} else {
System.out.println(3.0);
return 3.0;
}
}
public void grasen() {
istSatt = true;
}
public static void main(String[] args) {
Kuh Frida = new Kuh("Frida", true);
Frida.gibMilch();
Frida.grasen();
Frida.gibMilch();
}
}