기초 및 언어/▶ Java&JSP
20. 제어자, 접근제어지시자(Access Modifier)와 기타제어자
by 류딩이
2025. 8. 19.
제어자
1. 접근 제어자 (Access Modifier)
- 접근 범위(어디서 접근 가능한지)를 정함
- public, protected, default, private
2. 그 외 제어자 (Non-access Modifier)
- 성격이나 동작을 제어
- final, abstract, static, synchronized, native, transient, volatile 등
1. 접근제어지시자(Access Modifier)
| 제어자 |
같은 클래스 |
같은 패키지 |
다른 패키지 자식 클래스 |
다른 패키지 |
| public |
✅ |
✅ |
✅ |
✅ |
| protected |
✅ |
✅ |
✅ |
❌ |
| default |
✅ |
✅ |
❌ |
❌ |
| private |
✅ |
❌ |
❌ |
❌ |
- public → 모두 허용
- protected → (상속) 자식 허용, 같은 패키지 + 다른 패키지의 자식 클래스
- default → 같은 패키지(폴더) 안에서만 허용
- private → 자기 클래스 안에서만 허용
2. 기타제어자 (Modifier)
📌 final 제어자
- 변수 → 상수(값 변경 불가)
- 메서드 → 오버라이딩 불가
- 클래스 → 상속 불가
final int NUM = 10; // 상수
final class Parent {} // 상속 불가
class Child extends Parent {} // ❌ 에러
📌 abstract 제어자
- 미완성(추상) 상태를 의미
- 클래스 → 추상 메서드를 가질 수 있음(객체 생성 불가)
- 메서드 → 구현부 없이 선언만 함(자식이 반드시 오버라이딩해야 함)
abstract class Animal {
abstract void sound(); // 구현부 없음
}
class Dog extends Animal {
void sound() {
System.out.println("멍멍");
}
}