제한자란?
클래스, 변수, 메소드 선언부에 함께 사용되어 부가적인 의미를 부여하는 것
- 접근 제한자 - public, protected, default, private
제한자 | 접근 가능 범위 | |||
같은 클래스 | 같은 패키지 | 다른 패키지의 자손 클래스 |
전체 | |
public | O | O | O | O |
protected | O | O | O | |
default(package) | O | O | ||
private | O |
- 그 외 제한자
- static : 클래스 레벨의 요소 설정
- final : 요소를 더 이상 수정할 수 없음
- abstract : 추상 메소드 및 추상 클래스 작성
- synchronized : 멀티스레드에서의 동기화 처리
하나의 대상에 여러 제한자를 조합 가능하나 접근 제한자는 하나만 사용 가능하다.
💡 final을 쓰는 이유는?
→ 이미 잘만들어져있기 때문에 괜히 더 확장해서 실수를 하지 않게 도와주기 위해 사용한다.
final class - 더 이상 확장할 수 없음 : 상속 금지, 오버라이드 금지
final method - 더 이상 재정의할 수 없음 : 오버라이드 금지
final vairable - 더 이상 값을 바꿀 수 없음(상수)