자바에서 제어자(modifier)는 클래스, 변수, 메서드 등의 선언부에 사용되어 해당 선언의 특성을 조정하는 키워드입니다. 제어자를 사용하여 선언된 대상의 속성이나 행동을 변경하거나 제한할 수 있습니다. 주로 접근 제어, 상속, 다형성 등을 조절하기 위해 사용됩니다.
주요 제어자의 종류
1. 접근 제어자(Access Modifiers)
- public : 어떤 클래스에서든 접근 가능.
- protected : 동일 패키지 또는 하위 클래스에서 접근 가능.
- default (package-private) : 동일 패키지에서만 접근 가능.
- private : 동일 클래스에서만 접근 가능.
public class Example {
public int publicVar;
protected int protectedVar;
int defaultVar;
private int privateVar;
}
2. Non-access 제어자
- final : 값이 변경되지 않음을 나타냄(변수, 메서드, 클래스에 사용).
- static : 정적 멤버로 선언됨(변수, 메서드에 사용).
- abstract : 추상 클래스나 메서드를 선언(클래스, 메서드에 사용).
- synchronized : 한 번에 한 스레드만 접근 허용(메서드에 사용).
- volatile : 스레드 간의 변수 값의 일관성을 보장(변수에 사용).
public final class Example {
public static int staticVar;
public abstract void abstractMethod();
private volatile int volatileVar;
}
3. 기타 제어자
- transient : 직렬화 대상에서 제외됨(변수에 사용).
- native : 네이티브 코드로 구현된 메서드임을 나타냄(메서드에 사용).
- strictfp : 부동 소수점 연산을 엄격하게 수행(클래스, 메서드에 사용).
class Example {
private transient int transientVar;
public native void nativeMethod();
public strictfp void strictfpMethod() {}
}
4. 제어자의 사용 예제
public class AccessExample {
private int privateVar;
public static final double PI = 3.14159;
public AccessExample() {
// 생성자에서 privateVar 초기화
privateVar = 0;
}
public void setPrivateVar(int value) {
// public 메서드에서 privateVar에 접근하여 값을 설정
privateVar = value;
}
public int getPrivateVar() {
// public 메서드에서 privateVar의 값을 반환
return privateVar;
}
}
위의 예제에서 private, public, static, final 등의 제어자를 사용하여 클래스의 변수와 메서드의 특성을 지정하고 있습니다. 이러한 제어자의 조합을 통해 적절한 접근 권한과 특성을 부여할 수 있습니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 protected 제어자 (0) | 2023.11.11 |
---|---|
자바 public 제어자 (0) | 2023.11.11 |
자바 static import문 (0) | 2023.11.11 |
자바 import문 (0) | 2023.11.11 |
자바 패키지의 선언 (0) | 2023.11.11 |