Java 在对象上声明布尔值,不';我不能改变他的价值观

Java 在对象上声明布尔值,不';我不能改变他的价值观,java,instance-variables,Java,Instance Variables,我只是想弄清楚实例变量是如何工作的,但这让我想到了一些奇怪的事情 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

我只是想弄清楚实例变量是如何工作的,但这让我想到了一些奇怪的事情

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();  
        }
    }
}
它如何可能输出: “砰砰,砰砰 叮叮咚咚 棒棒棒棒“

而不是:“砰,砰,砰,砰 "叮叮"

因为我认为陷阱只能玩一次,因为我是在d.playSnare()之后声明的;
到d.陷阱=假

删除此行中的分号,它充当
if
块的主体

if (d.snare == true);{
换成

if (d.snare == true){
另外,
d.snare
已经是一个
boolean
,因此可以将条件表达式简化为:

if (d.snare){
爆炸了

if (d.snare == true);
移除