Noob关于Java程序中的语句的问题

时间:2010-05-07 09:08:10

标签: java

我是java的初学者,正在尝试从头脑第一个java中解决这个代码难题,我解决了如下并得到正确的输出:D

class DrumKit
    {
        boolean topHat=true;
        boolean snare=true;
        void playSnare()
            {
                System.out.println("bang bang ba-bang");
            }
        void playTopHat()
            {
                System.out.println("ding ding da-ding");
             }


    }

public class DrumKitTestDriver
    {

        public static void main(String[] args)

            {
                DrumKit d =new DrumKit();

                if(d.snare==true)

                    {
                        d.playSnare();
                    }

                                //d.snare=false;

                   d.playTopHat();

            }

    }

输出是::

bang bang ba-bang 丁丁达丁

现在的问题是在那个代码拼图中留下了一个我没有包含的代码片段。如下所示

d.snare = FALSE;

即使我没有写它,我也得到了像书一样的输出。我想知道为什么我们需要将它的值设置为false,即使我们知道代码也会在没有它的情况下运行!??

我想知道编码员的想法是什么。我的意思是未来可能会有什么用途和背后的动机?

如果这是一个愚蠢的问题,我很抱歉。我只是想知道为什么或为什么不包括那个特定的陈述?它不像是一个循环或我们需要出来的东西。为什么那个声明在那里?

4 个答案:

答案 0 :(得分:1)

可能只是为了演示如何更改公共成员变量。

答案 1 :(得分:0)

在哪里

d.snare=false;

如果它在if条件之前,那么它会通过影响类d中变量的状态来改变输出,它现在只是发布。

丁丁达丁 if条件将被绕过,但如果它在if条件之后,它将不会产生任何影响,因为它的值仅在if条件下计算。

写在Main或班级内;

从您发布的代码中输出结果是正确的。

答案 2 :(得分:0)

我很确定没有理由改变变量/状态/无论之后是否确定都没有用过!

此致

答案 3 :(得分:-1)

你应该让DrumKit处理逻辑,让主类只对DrumKit进行设置。 像这样:

class DrumKit
{
    boolean topHat=true;
    boolean snare=true;
    void playSnare() {
            System.out.println("bang bang ba-bang");
    }
    void playTopHat() {
            System.out.println("ding ding da-ding");
    }

    void play(){
            if (snare){
                     playSnare();
            }
            if (topHat){
                     playTopHat();
            }
    }
}

public class DrumKitTestDriver {

    public static void main(String[] args) {
            DrumKit d =new DrumKit();
            d.snare = false;
            d.play();
         }
}