第一个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
。