【发布时间】:2012-02-10 04:28:02
【问题描述】:
我在旨在说明构造函数的幻灯片中看到了这一点。我现在很困惑,因为它有两个具有相同工作的构造函数接受在第二个构造函数中将 gpa 设置为零。为什么编码器需要再次重复this.id = id; this.name = name;?为什么这个类甚至需要两个构造函数?
class Student{
private int id;
private String name;
private double gpa;
public Student(int id, String name, double gpa){
this.id = id; this.name = name; this.gpa = gpa;
}
public Student(int id, String name){
this.id = id; this.name = name; gpa = 0.0;
}
public boolean equals(Student other){
return id == other.id && name.equals(other.name)
&& gpa == other.gpa;
}
public String toString(){
return name + " " + id + " " + gpa;
}
public void setName(String name){
this.name = name;
}
public double getGpa(){
return gpa;
}
}
【问题讨论】:
-
最好链接:
public Student(int id, String name) { this(id,name,0.0); }- 否则您的代码更改必须发生两次,这很糟糕!
标签: java class methods constructor