변수의 자료형

클래스형으로 변수를 선언
기본 자료형은 사용하는 메모리의 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 다름
참조 자료형을 사용 할때는 해당 변수에 대해 생성하여야 함 (String 클래스는 예외적으로 생성하지 않고 사용할 수 있음)
Student)과 과목(Subject)에 대한 클래스를 분리하여 사용하고 Subject 클래스를 활용하여 수강한 과목들의 변수의 타입으로 선언
Student.java
package ch09; public class Student { int studentId; String studentName; Subject korea; Subject math; Student(int studentId, String studentName) { this.studentId = studentId; this.studentName = studentName; // 선언된 Subject 변수는 생성된 인스턴스가 아니므로, Student의 생성자에서 생성하여 사용 korea = new Subject(); math = new Subject(); } 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 showScoreInfo() { int total = korea.score + math.score; System.out.println(studentName + "학생의 총점은 " + total + "점 입니다."); } }Subject.java
package ch09; public class Subject { String subjectName; int score; int subjectId; }SudentTest.java
package ch09; public class SubjectTest { public static void main(String[] args) { Student studentLee = new Student(100, "Lee"); studentLee.setKoreaSubject("국어", 100); studentLee.setMathSubject("수학", 99); Student studentKim = new Student(200, "Kim"); studentKim.setKoreaSubject("국어", 50); studentKim.setMathSubject("수학", 55); studentLee.showScoreInfo(); studentKim.showScoreInfo(); } }출력 결과