JAVA/포스팅

자바 제어자(modifier)

짜집퍼박사(짜박) 2023. 11. 11. 19:01

자바에서 제어자(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