대학생(즉, 학부생)에 대한 정보에는 기존의 이름(name), 학번(studentNumber), 학년(level) 이외에 전공(major - String 타입)과 이수학기(semester - int 타입) 및 평균학점(averageScore - double 타입)이 포함됩니다. 또한 학생의 학기별학점(semesterScores)을 double 타입 배열(배열의 크기는 semester로 결정됨)로 정의하고, 이를 더해서 평균학점(averageScore)을 계산하는 메소드를 정의하고자 합니다.
적절한 생성자, 접근 메소드(get/set 메소드), private 메소드를 여러분 나름대로 정의하기 바랍니다.
또한 이름, 학번, 이수학기, 평균학점을 비교하여 동일한 객체인지 검사하는 equals 메소드도 포함시킵니다. 단, Person 클래스와 Student 클래스의 생성자와 메소드를 최대한 재사용하시기 바랍니다.
Undergraduate 클래스를 정의한 소스 파일(즉, Undergraduate.java)과 테스트를 위한 데모 소스 파일(UndergraduateDemo.java)을 구현하여 제출하시기 바랍니다. 제출하는 소스 코드 내부에는 적당한 주석(comment)이 포함되어야 하며, 반드시 컴파일과 실행을 거친 후 제출 바랍니다.
private int level; // 학년(범위: 1~4)
public Undergraduate() {
super();
level = 1;
}
public Undergraduate(String initialName, int initialStudentNumber, int initialLevel) {
super(initialName, initialStudentNumber);
setLevel(initialLevel);
}
public void reset(String newName, int newStudentNumber, int newLevel) {
reset(newName, newStudentNumber);
setLevel(newLevel);
}
public int getLevel() {
return level;
}
public void setLevel(int newLevel) {
if ((1 <= newLevel) && (newLevel <= 4))
level = newLevel;
else {
System.out.println("적당한 학년이 아님");
System.exit(0);
}
}
public void writeOutput() {
super.writeOutput();
System.out.println("학년: " + level);
}
public boolean equals(Undergraduate otherUndergraduate) {
return (super.equals(otherUndergraduate)
&& (this.level == otherUndergraduate.level));
}
뭐 어캐 하라는 거임..
저대로는 이클립스에서 컴파일도 안되고..
(IP보기클릭)220.83.***.***
(IP보기클릭)220.83.***.***
클래스정의한파일 . 그 클래스를 사용하는 데모프로그램 구현 | 18.04.20 20:03 | |