/** Encapsulate information relating to a single student.
** @author: Jonathan Doughty
**/
public class CSStudent {
// Instance variables (fields) that will be associated with
// each student
private String GMU_Id;
private String name;
private int homeworkGrade;
private CSStudent labPartner;
// Constructors for the class
private CSStudent() { // why do you think this is?
}
public CSStudent( String name, String id) {
this.name = name;
GMU_Id = id;
}
// An accessor method to set the Student's name field; not
// needed any more but left in because a student's name could
// change.
public void setName( String studentName ) {
name = studentName;
}
// An accessor method to return this Student's name
public String getName() {
return name;
}
// An accessor method to set the Student's GMU_Id field (probably
// no longer necessary)
public void setId( String id ) {
GMU_Id = id;
}
// An accessor method to set the Student's homeworkGrade field
public void setGrade( int grade ) {
homeworkGrade = grade;
}
// An accessor method to assign this Student's lab partner
public void setLabPartner( CSStudent s ) {
labPartner = s;
}
// Using the toString method to enable an instance of an
// object to identify itself usefully.
public String toString() {
// Since I'm going to be returning a String made up of various
// pieces, I build up those pieces in a StringBuffer.
StringBuffer sb = new StringBuffer();
sb.append(name);
sb.append(" Id# ");
sb.append(GMU_Id);
if (labPartner != null) {
// Notice I don't just use labPartner.toString(). If I did
// I would create an infinite loop: each lab partner calls
// its lab partner's toString() which calls's its lab
// partner's toString() ... Instead, I just get and append
// the lab partner's name.
sb.append(" lab partner=");
sb.append( labPartner.getName());
}
return sb.toString();
}
}
|