Access-Modifier
1 Access Modifier
- 접근 제한자는 객체의
캡슐화
를 달성하는데 사용되는 메커니즘이다. - 외부 클래스에서 접근할 수 있는 멤버와 접근 할 수 없는 멤버를 구분해서 필드, 메소드, 생성자를 설계하는 것이 바람직
- 접근 제한자로 이러한 기능을 사용할 수 있다.
- 접근 제한자는 public, protected, default, private 4가지의 종류가 있다.
- public: 외부 클래스가 자유롭게 사용할 수 있는 멤버를 만든다.
- protected: 같은 패키지 또는 자식 클래스만 사용할 수 있는 멤버를 만든다.
- default: 같은 패키지에 속한 클래스만 사용할 수 있는 멤버를 만든다.
- private: 외부에 노출하지 않는 멤버를 만든다.
접근 제한 | 적용 대상 | 접근할 수 없는 클래스 |
---|---|---|
public | 클래스, 필드, 생성자, 메소드 | 없음 |
protected | 필드, 생성자, 메소드 | 자식 클래스가 아닌 다른 패키지에 소속된 클래스 |
default | 클래스, 필드, 생성자, 메소드 | 다른 패키지에 소속된 클래스 |
private | 필드, 생성자, 메소드 | 모든 외부 클래스 |
2 클래스의 접근 제한
- 클래스를 선언할 때 고려해야 할 사항은 같은 패키지 내에서만 사용할 것인지, 아니면 다른 패키지에서도 사용할 수 있도록 할 것인지를 결정해야 한다.
- 클래스에 적용할 수 있는 접근 제한은
public
과dafault
단 두 가지인데, 다음과 같은 형식으로 작성한다.
// default 접근 제한
class 클래스 { ... }
// public 접근 제한
public class 클래스 { ... }
2.1 default 접근 제한
- 클래스를 선언할 때 public을 생략했다면 클래스는 default 접근 제한을 가진다.
- 클래스가 default 접근 제한을 가지게 되면 같은 패키지에서는 아무런 제한 없이 사용할 수 있지만 다른 패키지에서는 사용할 수 없도록 제한된다.