use*_*851 -1 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 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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
怎么可能输出:"bang bang ba-bang ding ding ding dang bang bang ba-bang"
而不是:"砰砰砰砰砰砰哒哒哒"
因为我认为圈套只会播放一次,因为我在d.playSnare()之后声明了它; 到d.snare = false;
删除此行中的分号,该分号充当您的if块的主体.
if (d.snare == true);{
Run Code Online (Sandbox Code Playgroud)
将其更改为
if (d.snare == true){
Run Code Online (Sandbox Code Playgroud)
此外,d.snare已经是一个boolean,所以你可以简化条件表达式:
if (d.snare){
Run Code Online (Sandbox Code Playgroud)