public class Undergraduate extends Student
1: //Undergraduate.java
2:
3: public class Undergraduate extends Student
4: {
5: private int level; //1 for freshman, 2 for sophomore,
6: //3 for junior, or 4 for senior.
7:
8: public Undergraduate()
9: {
10: super();
11: level = 1;
12: }
13:
14: public Undergraduate
15: (
16: String initialName,
17: int initialStudentNumber,
18: int initialLevel
19: )
20: {
21: super(initialName, initialStudentNumber);
22: setLevel(initialLevel); //Checks 1 <= initialLevel <= 4
23: }
24:
25: public void reset
26: (
27: String newName,
28: int newStudentNumber,
29: int newLevel
30: )
31: {
32: reset(newName, newStudentNumber); //Student's reset
33: setLevel(newLevel); //Checks 1 <= newLevel <= 4
34: }
35:
36: public int getLevel()
37: {
38: return level;
39: }
40:
41: public void setLevel
42: (
43: int newLevel
44: )
45: {
46: if ((1 <= newLevel) && (newLevel <= 4))
47: level = newLevel;
48: else
49: {
50: System.out.println("Illegal level!");
51: System.exit(0);
52: }
53: }
54:
55: public void writeOutput()
56: {
57: super.writeOutput();
58: System.out.println("Student Level: " + level);
59: }
60:
61: public boolean equals
62: (
63: Undergraduate otherUndergraduate
64: )
65: {
66: return equals((Student)otherUndergraduate) &&
67: (this.level == otherUndergraduate.level);
68: }
69:
70:
71: public static void main(String[] args)
72: {
73: Undergraduate u1 = new Undergraduate();
74: u1.writeOutput();
75: System.out.println(u1); //What does this print and why?
76: }
77:
78: /*
79: // Alternate (but simple) version of the equals() method
80: public boolean equals
81: (
82: Undergraduate otherUndergraduate
83: )
84: {
85: return super.equals(otherUndergraduate) &&
86: (this.level == otherUndergraduate.level);
87: }
88: */
89: }