[Java] 참조 자료형 변수

2022. 9. 4. 19:50·🍞 BackEnd/Java

참조 자료형

- 변수의 자료형

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

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

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

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

 

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

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

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

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

 

멤버 변수의 참조 자료형을 만들어서 new 생성해서 써야 한다.

참조 자료형으로 분리를 하는 것이 각각 객체에 대한 역할과 기능을 분명하게 한다.

 

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 showStudentSocre() {
		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 studentLee = new Student(100, "Lee");
    	studentLee.setKoreaSubject("국어", 100);
    	studentLee.setMathSubject("수학", 95);


    	Student studentKim = new Student(101, "Kim");
    	studentKim.setKoreaSubject("국어", 80);
    	studentKim.setMathSubject("수학", 99);

    	studentLee.showStudentSocre();
    	studentKim.showStudentSocre();
    }

}

Lee 학생의 총점은 195점입니다.  
Kim 학생의 총점은 179점입니다.

저작자표시 (새창열림)

'🍞 BackEnd > Java' 카테고리의 다른 글

[Java] static 응용 - 싱글톤 패턴  (0) 2022.09.04
[Java] 인스턴스에서 공통으로 사용하는 static 변수  (0) 2022.09.04
[Java] 접근 제어 지시자와 정보 은닉 & 캡슐화  (0) 2022.09.04
[Java] 생성자 constructor  (0) 2022.09.04
[Java] 객체 자신을 가리키는 this  (0) 2022.09.04
'🍞 BackEnd/Java' 카테고리의 다른 글
  • [Java] static 응용 - 싱글톤 패턴
  • [Java] 인스턴스에서 공통으로 사용하는 static 변수
  • [Java] 접근 제어 지시자와 정보 은닉 & 캡슐화
  • [Java] 생성자 constructor
박빵이
박빵이
2025년에도 갓생살기
  • 박빵이
    기억보다 기록
    박빵이
  • 전체
    오늘
    어제
    • 분류 전체보기 (337)
      • 🍞 FrontEnd (97)
        • HTML+CSS (4)
        • JavaScript (17)
        • TypeScript (4)
        • React (52)
        • Next.js (2)
        • Android (15)
      • 🍞 BackEnd (24)
        • Java (15)
        • Node.js (6)
        • Spring (1)
      • 🍞 Cloud & Infra (0)
        • AWS SAA (0)
        • Microsoft Azure (0)
      • 🍞 Algorithm (147)
        • C++ (4)
        • Baekjoon (41)
        • Programmers (97)
      • 🍞 Computer Science (18)
        • 운영체제 (1)
        • 데이터 통신 (6)
        • 네트워크 (6)
        • 데이터베이스 (1)
      • 🍞 대외활동 & 부트캠프 (42)
        • 삼성 청년 SW 아카데미 (1)
        • LG유플러스 유레카 (0)
        • 한국대학생IT경영학회 (1)
        • IT연합동아리 UMC (17)
        • 길벗 블로깅 멘토 (18)
        • IT연합동아리 피로그래밍 (3)
        • 개발 컨퍼런스 (2)
  • 블로그 메뉴

    • Admin
  • 링크

    • GitHub
  • 인기 글

  • 태그

    Android
    map
    Front
    JavaScript
    react
    C++
    코딩자율학습
    유니온파인드
    길벗 블로깅 멘토링
    level1
    코틀린
    umc
    Java
    프로그래머스
    길벗 블로깅 멘토
    안드로이드
    level2
    위상정렬
    알고리즘
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박빵이
[Java] 참조 자료형 변수
상단으로

티스토리툴바