이번 강의에서는 참조 자료형과 정보은닉, 접근 제어자에 대해서 배운다. 참조형이라는 용어는 참조 자료형에서 많이 들어봤지만 주소값을 알려준다고하는 대략적인 뜻만 알뿐 정확히는 알지 못했는데 이번 기회에 자세히 알아보도록 하자.
이 쯤 되면 내가 자세히 아는 것이 있긴 할까 라는 의문이 든다.
변수의 자료형에는 기본 자료형 (int, long float, double)
과 참조 자료형 (자바 라이브러리에서 제공됨, String, Data, Student 등)
이 있다. 참조 자료형을 변수에 할당할 때는 변수에 값이 아닌 주소를 저장한다는 특징이 있다.
참조 자료형에는 JDK
에서 제공하는 자료형이 있고, 사용자들이 직접 만들어서 사용하는 자료형도 있다. 참조 자료형은 클래스 형
으로 선언하는 자료형인데 한 마디로 클래스가 자료형이 된다는 것이다.
참조 자료형은 선언한다고 다 클래스가 생기는 것이 아니다. String
이나 JDK에서 제공되는 것들
중에 new 키워드
를 사용하지 않아도 일반 기본 자료형처럼 사용할 수 있는 자료형이 있긴 하다. 하지만 우리가 사용하는 참조 자료형
은 new 키워드
를 써서 사용해야 한다.
참조 자료형의 예시를 학생
으로 들어보자.
학생에는 수많은 속성
이 있다. 학생의 속성 중 수업
에 대한 부분을 잡고, 수업
에 대한 각 속성을 학생 클래스
에 정의하지 않고 수업이라는 클래스
로 분리해서 사용한다. 이 때 과목
은 참조 자료형
으로 선언한다.
정보은닉
이란 말 그대로 숨기는 것
을 의미하는데 그 중에서도 객체의 속성
을 숨기는 것을 의미한다. 이 것은 OOP
의 가장 큰 특징으로, 정보은닉
을 사용할 때에는private
이라는 접근 제어자
를 사용한다.
private 접근 제어자
는 말 그대로 접근을 못하는 제어자라고 생각하면 쉽다. 클래스의 외부에서 클래스 내부의 멤버 변수나 메서드에 접근(access)하지 못하게 하는 경우에 사용하게 된다.
이 private 접근 제어자
를 사용하면 멤버 변수나 메서드를 외부에서 사용하지 못하도록 하여 오류를 줄일 수 있다.
변수에 대해서는 필요한 경우에 get()
set()
메서드를 제공한다.
그렇다면 이러한 get()
set()
메서드는 과연 무슨 역할을 하는 것일까?
외부에서도 특정 클래스의 protected/private
속성에 접근하기 위해, 프로그래머는 get() set() 함수
라는 것을 정의하여 사용한다.
public
: 외부 클래스에서 다 가져다 사용할 수 있다.private
: 자기 클래스 내에서만 사용할 수 있다.default
: 같은 패키지 내에서는 사용할 수 있다.