【发布时间】:2014-04-12 02:04:50
【问题描述】:
public class Main {
public static void main(String[] args) {
Person Gunnar = new Person();
Person Sven = new Person();
Dog Doggy = new Dog();
Dog Doggi = new Dog();
Gunnar.setName("Gunnar");
Gunnar.setAge(20);
Gunnar.setHeight(215);
Sven.setName("Sven");
Sven.setAge(55);
Sven.setHeight(178);
Sven.sayHello(Gunnar);
}
}
Java 想让我将 .setName 行中的 Sven 和 Gunnar(两个 Person 对象的名称)更改为 Person,因此它将是 Person.setName("Gunnar"); 和 Person.setName("Sven");。但是,这是行不通的,因为没有办法分辨哪个是哪个。如果我错了,请纠正我。也不要介意狗代码。
这是 Person 类的代码:
public class Person {
static int age;
static int height;
static String name;
public void sayHello(Person name) {
System.out.println("Hello!" +name);
}
public int getAge() {
return age;
}
public void setAge(int age) {
Person.age = age;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
Person.height = height;
}
public static String getName() {
return name;
}
public static void setName(String name) {
Person.name = name;
}
}
【问题讨论】:
-
您还没有向
Person班级提供源代码。很可能你错误地声明了它的方法static。 -
如果方法是静态的,为什么要在变量上调用它们?
-
尽量遵守命名约定,变量名以小写字母开头。更容易将它们与类区分开来并防止此类错误。
-
这只是一个风格建议。它仍然会编译并运行正常。
-
@Tony 感谢您试图通过编辑这篇文章来提供帮助,但其中还有许多其他问题。今后,请在提出修改建议之前改进帖子中的所有内容。