我只是弄清楚实例变量是如何工作的,但它让我有些奇怪。
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 ba-bang“
而不是:“砰砰砰砰砰砰 丁丁大丁“
因为我认为圈套只会播放一次因为我在d.playSnare()之后声明它; 到d.snare = false;
答案 0 :(得分:6)
删除此行中的分号,该分号作为if
块的正文。
if (d.snare == true);{
将其更改为
if (d.snare == true){
此外,d.snare
已经是boolean
,因此您可以将条件表达式简化为:
if (d.snare){
答案 1 :(得分:1)
这是爆炸
if (d.snare == true);
删除;