Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
第一个java程序,不打印任何内容_Java - Fatal编程技术网

第一个java程序,不打印任何内容

第一个java程序,不打印任何内容,java,Java,我想我写的代码是正确的,但它没有打印任何东西。谁能解释一下原因吗 public class Dogs { String name = ""; String color = ""; String breed = ""; boolean hungry = true; void changeBarking (boolean True) { hungry = True; } void changeName (String ne

我想我写的代码是正确的,但它没有打印任何东西。谁能解释一下原因吗

public class Dogs {

    String name = "";
    String color = "";
    String breed = "";
    boolean hungry = true;

    void changeBarking (boolean True) {
        hungry = True;
    }

    void changeName (String newValue) {
        name = newValue;
    }

    void changeBreed (String newValue) {
        breed = newValue;
    }

    void changeColor (String newValue) {
        color = newValue;
    }

    void printStates() {
        System.out.println("name:" + name);
        System.out.println("color:" + color);
        System.out.println("breed:" + breed);
        System.out.println("hungry:" + hungry);
    }

}

class DogsDemo {
    public static void main(String[] args) {

        Dogs dog1 = new Dogs();
        Dogs dog2 = new Dogs();

        dog1.changeName("Dogas");
        dog1.changeColor("Juodas");
        dog1.changeBarking(true);

        dog2.changeName("Taksas");
        dog2.changeColor("Rudas");
        dog2.changeBarking(false);
    }
}

您没有调用方法
printStates()

您没有调用方法
printStates()

您必须实际调用进行打印的方法

这似乎也有点尴尬:

void changeBarking (boolean True) {
     hungry = True;
}
变量名应以小写字母开头,调用布尔变量
True
必然会引起混淆。相反,请使用以下内容:

void changeBarking (boolean isBarking) {
     hungry = isBarking;
}

您必须实际调用进行打印的方法

这似乎也有点尴尬:

void changeBarking (boolean True) {
     hungry = True;
}
变量名应以小写字母开头,调用布尔变量
True
必然会引起混淆。相反,请使用以下内容:

void changeBarking (boolean isBarking) {
     hungry = isBarking;
}

因为您没有调用methd
printStates()

将该方法称为

dog1.printStates();
dog2.printStates();

因为您没有调用methd
printStates()

将该方法称为

dog1.printStates();
dog2.printStates();
尝试添加行

dog1.printStates();
dog2.printStates();
在设置所有值之后,在main()方法中。目前,您从未真正调用过打印方法。

尝试添加行

dog1.printStates();
dog2.printStates();

在设置所有值之后,在main()方法中。目前,您从未真正调用过打印方法。

System.out.println(“”);允许您打印字符串。这是您在printStates()方法中所做的,但是由于您在任何时候都没有调用它,因此它不会被执行。

System.out.println(“”);允许您打印字符串。这是您在printStates()方法中所做的,但由于您在任何时候都没有调用它,因此它不会被执行。

在main方法之前的static,它将该方法声明为类方法,这意味着不需要调用实例。因此,当您要调用一个非静态方法时,Java会抱怨,因为您试图调用一个所谓的“实例方法”,这当然首先需要一个实例

只需调用
dog1.printStates()
dog2.printStates()内部主方法

class DogsDemo {
    public static void main(String[] args) {
       //  code here
        dog1.printStates();
        dog2.printStates();
    }
}

查看这个简单的程序:

在main方法之前的static,它将方法声明为类方法,这意味着不需要调用实例。因此,当您要调用一个非静态方法时,Java会抱怨,因为您试图调用一个所谓的“实例方法”,这当然首先需要一个实例

只需调用
dog1.printStates()
dog2.printStates()内部主方法

class DogsDemo {
    public static void main(String[] args) {
       //  code here
        dog1.printStates();
        dog2.printStates();
    }
}

看看这个简单的程序:

为什么它会打印任何东西?如果你不调用.printStates(),这很难。我不知道为什么没有人提到它,但是删除printStates()不是更好吗方法并通过调用
dog1.variableName
或b)重写dog类的toString方法将打印命令移动到main方法。。。?总之只是一个设计提示。在我看来,重写toString()会更好,但是像
dog1.variableName
这样直接访问变量有点违反OO封装原则。那些成员应该是具有setter/getter的
private
。为什么它会打印任何东西?如果你不调用.printStates(),这很难。我不知道为什么没有人提到它,但是删除printStates()不是更好吗方法并通过调用
dog1.variableName
或b)重写dog类的toString方法将打印命令移动到main方法。。。?总之只是一个设计提示。在我看来,重写toString()会更好,但是像
dog1.variableName
这样直接访问变量有点违反OO封装原则。这些成员应该是具有setter/getter的
private