Source of Undergraduate.java


  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: }