
✅ 접근 제어자의 종류
- private : 모든 외부 호출을 막는다.
- default(package-private) : 같은 패키지 안에서 호출은 허용한다.
- protected : 같은 패키지 안에서 호출은 허용한다. 패키지가 달라도 상속 관계의 호출은 허용한다.
- public : 모든 외부 호출을 허용한다.
순서대로 private이 가장 많이 차단하고, public이 가장 많이 허용한다.
private → default → protected → public
📚 package-private
접근 제어자를 명시하지 않으면 같은 패키지 안에서 호출을 허용하는 default 접근 제어자가 적용된다.
💡 default
default라는 용어는 해당 접근 제어자가 기본값으로 사용되기 때문에 붙여진 이름이지만, 실제로는 package-private가 더 정확한 표현이다. 해당 접근 제어자를 사용하는 멤버는 동일한 패키지 내의 다른 클래스에서만 접근이 가능하기 때문이다.
📚 접근 제어자 사용 위치
- 접근 제어자는 필드와 메서드, 생성자에 사용된다.
- 클래스 레벨에도 일부 접근 제어자를 사용할 수 있다.
✏️ 접근 제어자 예시
public class Speaker { // 클래스 레벨
private int volume; // 필드
public Speaker(int volume) {...} // 생성자
public void volumeUp() {...} // 메서드
public void volumeDown() {...}
public void showVolume() {...}
}
📚 접근 제어자의 핵심은 속성과 기능을 외부로부터 숨기는 것이다.
- private은 나의 클래스 안으로 속성과 기능을 숨길 때 사용, 외부 클래스에서 해당 기능을 호출할 수 없다.
- default는 나의 패키지 안으로 속성과 기능을 숨길 때 사용, 외부 패키지에서 해당 기능을 호출할 수 없다.
- protected는 상속 관계로 속성과 기능을 숨길 때 사용, 상속 관계가 아닌 곳에서 해당 기능을 호출할 수 없다.
- public은 기능을 숨기지 않고 어디서든 호출할 수 있게 공개한다.
'Back-end > Java' 카테고리의 다른 글
| [Java - 기본] 접근 제어자 사용 - 클래스 레벨 (0) | 2024.04.14 |
|---|---|
| [Java - 기본] 접근 제어자 사용 - 필드, 메서드 (0) | 2024.04.13 |
| [Java - 기본] 접근 제어자 이해2 (0) | 2024.04.13 |
| [Java - 기본] 접근 제어자 이해1 (0) | 2024.04.13 |
| [Java - 기본] 패키지 규칙 (0) | 2024.04.12 |