//Student.java

public class Student extends Person
{
    private int studentNumber;

    public Student()
    {
        super();
        studentNumber = 0; //Indicating no number yet
    }

    public Student
    (
        String initialName,      //in
        int initialStudentNumber //in
    )
    {
        super(initialName);
        studentNumber = initialStudentNumber;
    }

    public void reset
    (
        String newName,
        int newStudentNumber
    )
    {
        //super.name = newStudentName;  //can't do this ... why not?
        super.setName(newName);
        studentNumber = newStudentNumber;
    }

    public int getStudentNumber()
    {
        return studentNumber;
    }

    public void setStudentNumber
    (
        int newStudentNumber //in
    )
    {
        studentNumber = newStudentNumber;
    }

    public void writeOutput()
    {
        super.writeOutput();
        //System.out.println("Name: " + getName());
        System.out.println("Student Number: " + studentNumber);
    }

    public boolean equals
    (
        Student otherStudent //in
    )
    {
        return this.hasSameName(otherStudent) &&
              (this.studentNumber == otherStudent.studentNumber);
    }


    public String toString()
    {
        return "Name: " + getName() +
			   "\nStudent number: "  + studentNumber;
    }

 /* 
  * A much better equals() method definition
  *
    public boolean equals(Object otherObject)
    {
        if (otherObject == null)
            return false;
        else if (!(otherObject instanceof Student))
            return false;
        else
        {
            Student otherStudent = (Student)otherObject;
            return (this.sameName(otherStudent)
                && (this.studentNumber ==
                                otherStudent.studentNumber));
        }
    }
*/

}
