지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - ArrayList 클래스
지난 글에서 배운 ArrayList를 사용해 학생 성적 출력 프로그램을 구현해보자.
이 프로그램은 Student 클래스와 Subject 클래스를 사용한다.
만약 어떤 학생이 10과목을 수강한다면 Subject 클래스형 자료형으로 선언한 변수가 10개 필요하다.
또 다른 학생은 4과목을, 어떤 학생은 7과목을 수강할 수도 있다.
따라서 이러한 경우에는 배열을 사용하여 프로그램을 구현하는 것이 좋다.
Subject 클래스는 참조 자료형이므로 ArrayList를 활용해 구현한다.
시나리오:
1001학번 Choi와 1002학번 Kim, 두 학생이 있다. Choi 학생은 3과목을 수강한다.
국어 점수가 95점, 영어 점수가 70점, 수학 점수가 60점이다.
Kim 학생은 2과목을 수강한다. 국어 점수가 90점, 영어 점수가 80점이다.
Student 클래스와 Subject 클래스를 생성한 후 두 학생의 과목 성적과 총점을 각각 출력해보자.
Student 클래스 구현
한 학생이 수강하는 과목은 여러 개 존재할 수 있으므로 8행에서 Subject 클래스형으로 ArrayList를 하나 생성한다.
subjectList는 학생이 수강하는 과목을 저장할 배열이다. 학생의 수강 과목을 하나씩 추가하기 위해 16~21행
addSubject( ) 메서드를 만들고, 매개변수로 넘어온 과목 이름과 점수를 가지고 Subject 클래스를 생성하고, 생성한
인스턴스는 subjectList에 추가한다. 그럼 이 학생의 수강 과목 정보는 subjectList에 저장된다.
23~30행 showStudentInfo( ) 메서드에서는 각 과목의 성적과 총점을 출력한다.
향상된 for문을 사용하여 subjectList 배열 내용을 출력 할 수 있다.
Subject 클래스 구현
과목 정보를 담고 있는 Subject 클래스이다.
멤버 변수는 과목 이름과 성적 두 가지이며 7~21행에 구현한 메서드는 name과 scorePoint 멤버 변수의 get( ), set( )
메서드이다.
테스트 클래스 구현 & 실행
시나리오대로 학생 두 명을 생성한다. 학생은 studentID와 studentName을 매개 변수로 생성한다.
5행에서 만든 studentChoi의 addSubject( ) 메서드를 호출하여 학생 Choi가 수강 중인 국어, 영어, 수학 과목을
studentChoi의 subjectList에 추가한다. 같은 방법로 studentKim을 생성, studentKim의 subjectList에 학생 Kim이
수강 중인 국어, 영어 과목을 addSubject( ) 메서드를 사용하여 추가한다.
showStudentInfo( ) 메서드를 호출하여 각 학생의 과목별 성적과 총점을 출력한다.
참고 서적: 자바 프로그래밍 입문 - 박은종
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
JAVA 입문 - 상속에서 클래스 생성과 형 변환 (0) | 2022.05.20 |
---|---|
JAVA 입문 - 상속 (0) | 2022.05.19 |
JAVA 입문 - ArrayList 클래스 (0) | 2022.05.17 |
JAVA 입문 - 다차원 배열 (0) | 2022.05.16 |
JAVA 입문 - 배열 (0) | 2022.05.15 |