본문 바로가기
프로그래밍 언어/JAVA(자바) 응용

9.참조 자료형 변수

by lroot 2022. 5. 21.
728x90
반응형

변수의 자료형

- 기본 자료형 : int, long, float, double 등

- 참조 자료형 : String, Date, Student 등

- 클래스형으로 변수를 선언

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

- 참조 자료형을 사용할 때는 해당 변수에 대해 생성하여야 함(String 클래스는 예외적으로 생성하지 않고 사용가능)

 

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

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

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

- 예

학생 클래스 : 학번, 학생이름, 국어성적, 수학성적, 수강하는 과목이름 ->

학생 클래스 : 학번, 학생이름, 국어과목, 수학 과목

과목 클래스 : 과목이름, 과목점수

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

 

예제

* Student.java

public class Student {
int studentID;
String studentName;

Subject korea;
Subject math;

public Student(int id, String name) {
studentID = id;
studentName = name;

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 showStudentScore() {
int total = korea.score + math.score;
System.out.println(studentName+" 학생의 총점은 "+total+"점 입니다. ");
}


}

 

* Subject.java

public class Subject {

String subjectName;
int score;
int subjectID;

}

 

* StudentTest.java

public class StudentTest {

public static void main(String[] args) {

Student 김 = new Student(100,"김");
김.setKoreaSubject("국어",100);
김.setMathSubject("수학",100);


Student 이 = new Student(101,"이");
이.setKoreaSubject("국어",90);
이.setMathSubject("수학",90);;

김.showStudentScore();
이.showStudentScore();


}

}

 

댓글