본문 바로가기

프로그래밍 언어/JAVA

JAVA 입문 - 배열 응용 프로그램

지난 글: [프로그래밍 언어/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