[Java] 2_4_클래스와 객체1(4)

Haeun Noh·2022년 8월 14일
0

0814


이번 강의에서는 참조 자료형과 정보은닉, 접근 제어자에 대해서 배운다. 참조형이라는 용어는 참조 자료형에서 많이 들어봤지만 주소값을 알려준다고하는 대략적인 뜻만 알뿐 정확히는 알지 못했는데 이번 기회에 자세히 알아보도록 하자.

이 쯤 되면 내가 자세히 아는 것이 있긴 할까 라는 의문이 든다.



참조 자료형(reference data type)

변수의 자료형에는 기본 자료형 (int, long float, double)참조 자료형 (자바 라이브러리에서 제공됨, String, Data, Student 등)이 있다. 참조 자료형을 변수에 할당할 때는 변수에 값이 아닌 주소를 저장한다는 특징이 있다.

참조 자료형에는 JDK에서 제공하는 자료형이 있고, 사용자들이 직접 만들어서 사용하는 자료형도 있다. 참조 자료형은 클래스 형으로 선언하는 자료형인데 한 마디로 클래스가 자료형이 된다는 것이다.

참조 자료형은 선언한다고 다 클래스가 생기는 것이 아니다. String이나 JDK에서 제공되는 것들중에 new 키워드를 사용하지 않아도 일반 기본 자료형처럼 사용할 수 있는 자료형이 있긴 하다. 하지만 우리가 사용하는 참조 자료형new 키워드를 써서 사용해야 한다.


참조 자료형의 예시를 학생으로 들어보자.
학생에는 수많은 속성이 있다. 학생의 속성 중 수업에 대한 부분을 잡고, 수업에 대한 각 속성을 학생 클래스에 정의하지 않고 수업이라는 클래스로 분리해서 사용한다. 이 때 과목참조 자료형으로 선언한다.



정보은닉 (information hiding)

정보은닉이란 말 그대로 숨기는 것을 의미하는데 그 중에서도 객체의 속성을 숨기는 것을 의미한다. 이 것은 OOP의 가장 큰 특징으로, 정보은닉을 사용할 때에는private이라는 접근 제어자를 사용한다.

private 접근 제어자

private 접근 제어자는 말 그대로 접근을 못하는 제어자라고 생각하면 쉽다. 클래스의 외부에서 클래스 내부의 멤버 변수나 메서드에 접근(access)하지 못하게 하는 경우에 사용하게 된다.

private 접근 제어자를 사용하면 멤버 변수나 메서드를 외부에서 사용하지 못하도록 하여 오류를 줄일 수 있다.

변수에 대해서는 필요한 경우에 get() set() 메서드를 제공한다.
그렇다면 이러한 get() set()메서드는 과연 무슨 역할을 하는 것일까?


get() set() 메서드

외부에서도 특정 클래스의 protected/private 속성에 접근하기 위해, 프로그래머는 get() set() 함수라는 것을 정의하여 사용한다.



접근 제어자 정리

  • public : 외부 클래스에서 다 가져다 사용할 수 있다.
  • private : 자기 클래스 내에서만 사용할 수 있다.
  • default : 같은 패키지 내에서는 사용할 수 있다.


profile
기록의 힘을 믿는 개발자, 노하은입니다!

0개의 댓글