Неправильный логический вывод - PullRequest
0 голосов
/ 23 ноября 2018

мой код:

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

}

}

Моя проблема: при создании я устанавливаю "istSatt" объекта "Frida" в "true".Поэтому при использовании метода «gibMilch» следует выдавать «10».Несмотря на это, он выдает «3», как логическое значение будет ложным, даже если я установил его в значение «истина».Он выдает «10» только после использования «grasen».Что я сделал не так?

Ответы [ 3 ]

0 голосов
/ 23 ноября 2018

Вам необходимо установить значения переменных вашего класса в конструкторе:

public Kuh(String name, boolean istSatt) {
    this.name = name;
    this.istSatt = istSatt;
}

Здесь this относится к классу, который вы создаете.

0 голосов
/ 23 ноября 2018

Попробуйте вместо этого, так как вы, кажется, не назначаете что-либо в вызове 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();

}

}
0 голосов
/ 23 ноября 2018

Вы не назначаете параметры конструктора для полей.

public Kuh(String name, boolean istSatt) {
    this.name = name;
    this.istSatt = istSatt;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...