Я просто выяснял, как переменные экземпляра работают, но это приводит меня к чему-то странному.Объявление boolean на объекте, не меняет его значение
public class DrumKit {
boolean topHat = true;
boolean snare = true;
void playTopHat() {
System.out.println("ding ding da-ding");
}
void playSnare(){
System.out.println("bang bang ba-bang");
}
}
public class DrumKitTestDrive {
public static void main(String [] args) {
DrumKit d = new DrumKit();
d.playSnare();
d.snare = false;
d.playTopHat();
if (d.snare == true);{
d.playSnare();
}
}
}
Как это возможно, что он выводит: "Bang Bang ба-бэнг динь динь да-динь навылет ба-взрыва"
И не: «Bang Bang ба-челку динь ding da-ding "
Поскольку я думал, что ловушка будет играть только один раз, потому что я объявляю его после d.playSnare(); - d.snare = false;