public class Student extends Person
1: //Student.java
2:
3: public class Student extends Person
4: {
5: private int studentNumber;
6:
7: public Student()
8: {
9: super();
10: studentNumber = 0; //Indicating no number yet
11: }
12: public Student
13: (
14: String initialName,
15: int initialStudentNumber
16: )
17: {
18: super(initialName);
19: studentNumber = initialStudentNumber;
20: }
21:
22: public void reset
23: (
24: String newName,
25: int newStudentNumber
26: )
27: {
28: //super.name = newStudentName; //can't do this ... why not?
29: super.setName(newName);
30: studentNumber = newStudentNumber;
31: }
32:
33: public int getStudentNumber()
34: {
35: return studentNumber;
36: }
37:
38: public void setStudentNumber
39: (
40: int newStudentNumber
41: )
42: {
43: studentNumber = newStudentNumber;
44: }
45:
46: public void writeOutput()
47: {
48: super.writeOutput();
49: //System.out.println("Name: " + getName());
50: System.out.println("Student Number: " + studentNumber);
51: }
52:
53: /*
54: */
55: public boolean equals
56: (
57: Student otherStudent
58: )
59: {
60: return this.hasSameName(otherStudent) &&
61: (this.studentNumber == otherStudent.studentNumber);
62: }
63:
64: public String toString()
65: {
66: return "Name: " + getName() +
67: "\nStudent number: " + studentNumber;
68: }
69:
70: public static void main(String[] args)
71: {
72: System.out.println("1===============");
73: Student s1 = new Student();
74: Student s2 = new Student();
75: System.out.println(s1 == s2);
76: System.out.println(s1.equals(s2));
77: String s3 = "Joe";
78: System.out.println(s1.equals(s3));
79: //Student s4 = null;
80: //System.out.println(s1.equals(s4));
81:
82: System.out.println("2===============");
83: s1.writeOutput();
84: System.out.println(s1); //What does this print and why?
85: }
86: }
87:
88:
89:
90: /*
91: * A much better equals() method definition
92: *
93: public boolean equals(Object otherObject)
94: {
95: if (otherObject == null)
96: return false;
97: else if (!(otherObject instanceof Student))
98: return false;
99: else
100: {
101: Student otherStudent = (Student)otherObject;
102: return (this.hasSameName(otherStudent)
103: && (this.studentNumber ==
104: otherStudent.studentNumber));
105: }
106: }
107: */