[Java] 자바 접근 제한자 알아보기 public/private/default/protecte

2020-11-22


접근 제한자의 종류는 4가지가 있다. public / protected / default / private이다. 이는 라이브러리 클래스 설계 시 외부(다른) 클래스에서 접근 가능/불가능 여부에 따라 필드, 생성자, 메서드를 설계하기 위해 사용된다. 오늘은 해당 내용에 대하여 알아보도록 하자.


public : public 은 메인 클래스에서의 접근 제한자이며, 이름에서도 느껴지듯이 접근할 수 없는 클래스에 제한이 없고, public을 적용할 수 있는 대상으로는 클래스 , 필드 , 생성자, 메서드 모두 가능하다. 


protected : protected의 경우 상속이라는 개념과도 연관이 있는데, public와 달리 자식 클래스가 아닌 외부(다른) 패키지의 클래스는 접근을 할 수 없다. 또한 protected은 클래스에서는 선언하지 못하며, 필드, 생성자, 메서드에서만 생성 가능하다.


default : default의 경우는 다른 패키지에 소속된 클래스들은 모두 상속 여부와 상관없이 모두 접근이 불가하다. 적용 가능 대상으로는 클래스, 필드, 생성자, 메서드 모두 가능하다.


private : private 이름에서도 느껴지듯이 가장 강력한 접근 제한 자이며, 모든 외부 클래스의 접근을 제한한다. 적용대상으로는 필드, 생성자, 메서드로 클래스에서는 선언할 수 없다.