가장 왼쪽 표와 같이 학생이라는 클래스에 함께 들어 있던 속성들을 각각 학생과 과목 클래스로 나누어서 관리하고학생 클래스에서 필요할때 과목이라는 참조 자료형으로 변수를 만들어 과목의 속성들을 활용하도록 해보겠습니다.
public class Student {
int studentID;
String studentName;
int koreanScore;
int mathScore;
int engScore;
String koreaName;
String mathName;
String engName;
}
첫번째 그림과 같이 Student 클래스에 학생과 과목에 속성이 혼재되어 있는 모습입니다. 이것을 각각 Student와 Subject 클래스로 나누어주도록 하겠습니다.
public class Subject {
String subjectName;
int score;
int subjectID;
}
다음과 같이 Subject 클래스를 만들고 그 안에 Subject의 속성들을 멤버 변수로 선언해 줍니다..
public class Student {
int studentID;
String studentName;
Subject korea;
Subject math;
}
//2번
public Student (int id, String name ) {
studentID = id;
studentName = name;
korea = new Subject();
math = new Subject();
}
//3번
public void setKoreaSubject(String name, int score) {
korea.subjectName = name;
korea.score = score;
}
public void setMathSubject(String name, int score) {
math.subjectName = name;
math.score = score;
}
public void showStudentScore() {
int total = korea.score + math.score;
System.out.println(studentName+ "학생의 총점은" + total + "입니다.");
}
public class StudentTest {
public static void main(String[] args) {
//1번
Student studentLee = new Student(100,"이순신");
//2번
studentLee.setKoreaSubject("국어", 100);
studentLee.setMathSubject("수학", 80);
//1번
Student studentKim = new Student(101,"김유신");
//2번
studentKim.setKoreaSubject("국어", 80);
studentKim.setMathSubject("수학", 90);
//3번
studentLee.showStudentScore();
studentKim.showStudentScore();
}
//결과값
이순신학생의 총점은180입니다.
김유신학생의 총점은170입니다.
}