객체 지향에서 정보 은닉을 위한 접근제어자는 정말 중요하다. 클래스와 클래스 멤버의 선언 시에 부가적인 의미를 더해주고 접근 제어자를 사용하면 클래스 외부에서의 직접적인 접근을 허용하지 않는 멤버를 설정하여 정보 은닉을 구체화할 수 있다. 자바에서 제어자는 접근 제어자와 기타 제어자로 구분한다.
그럼 접근 제어자와 기타 제어자에 대해 한번 알아보자!
접근 제어자
- public : 접근 제한이 없음
- private : 자기 자신의 클래스 내에서만 접근 가능
- protected : 동일한 패키지 내에 존재하거나, 파생 클래스에서만 접근 가능
- default : 접근 제어자를 명시하지 않을 경우 접근 제어의 기본 값으로 붙고, 동일한 패키지 내에서만 접근 가능
기타 제어자
- final : 변경할 수 없음을 의미
- static : 프로그램 시작시 최초에 단 한 번만 생성되고 초기화되고, 인스턴스를 생성하지 않고도 바로 사용할 수 있으며, 해당 클래스의 모든 인스턴스가 공유함
- abstract : (...추상 클래스에서 설명)