SCHOOL/객체지향 프로그래밍

자바 접근 제어자

chaerrii 2022. 11. 16. 11:28

public > protected >default > private 

- public: 접근 제한이 없다.

- protected: 동일한 패키지 내에 존재하거나 파생 클래스에서만 접근 가능하다.

- default: 아무런 접근 제한자를 명시하지 않으면 default 값이 되며, 동일한 패키지 내에 존재해야 접근 가능.

- private: 자기 자신의 클래스 내에서만 접근 가능 

Protected

protected string name; 
  • protected 는 자식클래스에서는 오픈되어있는 형태가 된다.
  • protected는 package private(default)보다 큰 개념으로 폴더 내에 있는 모든 클래스에서 접근이 가능할 뿐만 아니라 폴더가 다르더라도(패키지가 다르더라도), 상속 관계가 만들어진다면, 부모 클래스의 protected 멤버 변수나 함수에 접근할 수 있습니다.

💡 멤버 함수는 protected로 만드는 경우는 거의 없다. 변수는 protected 나 private으로 하고, 멤버 함수는 public 으로 지정해준다.