我在旨在说明构造函数的幻灯片中看到了这一点。我现在很困惑,因为它有两个具有相同工作的构造函数,接受在第二个构造函数中将 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 );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)