【发布时间】:2015-01-05 14:28:18
【问题描述】:
Bellow 是我在 Tutorials Points 上找到的一个例子,一个构造函数的例子。我得到了大部分,但我只是不明白为什么你需要一个构造函数和一个方法。
public Puppy(String name){
System.out.println("Passed Name is :" + name );
}
我的问题是,是什么阻止了您这样做?
public static void Puppy(String name){
System.out.println("Passed Name is: "+name);
}
这两个调用一次不做同样的事情吗?
这是完整的程序供参考:
public class Puppy {
int puppyAge;
public Puppy(String name) {
System.out.println("Passed Name is :" + name);
}
public void setAge(int age) {
puppyAge = age;
}
public int getAge() {
System.out.println("Puppy's age is :" + puppyAge);
//what does this return do? since the puppyAge is already printed above.
return puppyAge;
}
public static void main(String []args){
Puppy myPuppy = new Puppy("tommy");
myPuppy.setAge(2);
myPuppy.getAge();
System.out.println("Variable Value :" + myPuppy.puppyAge);
}
}
【问题讨论】:
-
您认为哪种方法会重复构造函数的工作?只有当构造函数和另一个方法正在执行相同的任务时,它们中的一个才可能是不必要的。然而,在这种情况下,构造函数并没有做它应该做的所有事情——特别是构造函数应该设置类中所有成员变量的值(并且它没有设置puppyAge,所以实例处于未定义状态构造后立即声明)并且它没有使用小狗的名字来设置变量(那么为什么要提供小狗的名字呢?)。
标签: java methods constructor