每当我运行getGender()
时,它都显示为null
。让我困惑的是isMale
。
public Student(String sid, String name, boolean isMale)
{
this.sid = sid;
this.name = name;
this.isMale = isMale;
courses = "30202"; // default is empty
}
我已经让它能够返回一个值,但它以"true"或"false"返回,而不以"Male"或"Female"返回,但这是将其返回为null的代码。我停滞不前。
您的构造函数不会设置字段String gender
。你可以,
public Student(String sid, String name, boolean isMale){
this.sid = sid;
this.name = name;
this.isMale = isMale;
this.gender = (isMale) ? "Male" : "Female";
courses = "30202"; // default is empty
}
当然,那么你的输出可能是
Male: Female
所以,我认为你真的想要
// System.out.println("Male: " + getGender());
System.out.println("Gender: " + getGender());
然后你会得到
Gender: Male
或
Gender: Female
您的isMale变量指示此人是否为Male。
您应该更改getGender方法,使其在isMale=true时返回"Male",在isMale=false时返回"Female"。
/**
* Get the gender of the student, i.e. "Male" or "Female"
*
* @return The String "Male" if the student is male,
* otherwise "Female".
*/
public String getGender()
{
if(isMale) {
gender = "Male";
}
else{
gender = "Female";
}
return gender;
}
类中没有设置gender
字段的内容。
通常,不应该同时具有isMale
变量和gender
变量。这是多余的。你可以从另一个派生一个,isMale
是一个更好的实现,因为你只有两个状态(这里不试图反跨性别,这只是大多数学生作业中的基本假设)。