프로그래밍/JAVA

접근 제한자

코딩딩 2016. 3. 30. 17:26

main() 메소드를 가지지 않는 대부분의 클래스는 외부 클래스에서 이용할 목적으로 설계된 라이브러리 클래스이다. 라이브러리 클래스를 설계할 때에는 외부 클래스에서 접근할 수 있는 멤버와 접근 할 수 없는 멤버로 구분해서 필드, 생성자, 메소드를 설계하는 것이 바람직하다. 객체 생성을 막기위해 생성자를 호출하지 못하게 하거나 객체의 특정 데이터를 보호하기 위해 해당 필드에 접근하지 못하도록 막아야 한다. 

접근제한자는 4가지의 종류가 있고, 제한자에 따른 적용 대상과 접근이 불가능한 클래스는 아래의 표와 같다.

접근제한

적용할 내용 

접근할 수 없는 클래스 

 public

 클래스, 필드, 생성자,메소드 

 없음 

 protected

 필드, 생성자, 메소드 

 자식 클래스가 아닌 다른 패키지에 소속된 클래스 

 default

 클래스, 필드, 생성자, 메소드 

 다른 패키지에 소속된 클래스 

 private

 필드, 생성자, 메소드 

 모든 외부 클래스