개발공부/객체 지향 입문

[Java] 09. 참조 자료형 변수

환타몬 2022. 1. 29. 21:30

 

참조 자료형

- 변수의 자료형

- 클래스형으로 변수를 선언 
- 기본 자료형은 사용하는 메모리의 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 다름

- 참조 자료형을 사용 할때는 해당 변수에 대해 생성하여야 함

 (String 클래스는 예외적으로 생성하지 않고 사용할 수 있음

 

참조 자료형 정의하여 사용하기

- 학생이 수강한 과목들에 대한 성적을 산출하기 위한 경우 학생 클래스 속성에 과목이 모두 있으면 불합리

- 학생(Student)과 과목(Subject)에 대한 클래스를 분리하여 사용하고 Subject 클래스를 활용하여 수강한 과목들의 변수의 타입으로 선언

- 선언된 Subject 변수는 생성된 인스턴스가 아니므로, Student의 생성자에서 생성하여 사용

public class Student {
	
	int studentId;
	String studentName;
	
	Subject korea;
	Subject math;
	
	Student(int studentId, String studentName){
		this.studentId = studentId;
		this.studentName = studentName;
		
		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 class Subject {

	String subjectName;
	int score;
	int subjectNum;
}

- Subject 클래스와 Student 클래스를 테스트할 Subject class

 

public class SubjectTest {

	public static void main(String[] args) {
		
		Student student1 = new Student(100,"kim");
		student1.setKoreaSubject("국어", 100);
		student1.setMathSubject("수학",88);
		
		Student student2 = new Student(100,"hwang");
		student2.setKoreaSubject("국어", 70);
		student2.setMathSubject("수학",100);
		
		student1.showScoreInfo();
		student2.showScoreInfo();

	}

}