본문 바로가기

JAVA

JAVA의 접근 제어자 ( Access Modifiers ) 설명

자바의 접근제어자는 4가지 종류가 있습니다. 접근 제어자는 클래스, 변수, 메서드 등의 멤버들에 대한 접근 권한을 제어하는 키워드 입니다.

 

  1. public : 가장 넓은 범위의 접근 제어자로, 해당 멤버에 대한 접근을 어디서든지 허용합니다. 다른 패키지에서도 접근할 수 있습니다.
  2. protected : 동일한 패키지 내에서의 접근은 물론, 다른 패키지에서 상속받은 경우에도 접근이 가능합니다. 다른 패키지에서 상속받지 않은 경우에는 접근이 제한됩니다.
  3. default (package-private) : 접근 제어자를 명시하지 않은 경우의 기본 접근 제어자입니다. 동일한 패키지 내에서의 접근은 허용되지만, 다른 패키지에서는 접근이 제한됩니다.
  4. private : 가장 제한적인 접근 제어자로, 해당 멤버에 대한 접근을 선언한 클래스 내에서만 허용합니다. 상속과는 관계없이 외부에서는 접근할 수 없습니다.

 

이 접근 제어자들은 클래스, 멤버 변수, 메서드 등에 사용될 수 있습니다. 클래스의 경우, public 접근 제어자를 사용하면 해당 클래스에 대한 접근이 가능하고, default 접근 제어자를 사용하면 동일한 패키지에서만 접근이 가능합니다.

멤버 변수와 메서드의 경우, 접근 제어자를 통해 해당 멤버의 가시성과 접근 범위를 제어할 수 있습니다. 예를 들어, private으로 선언된 멤버 변수는 외부에서 직접 접근할 수 없으며, getter와 setter 메서드를 통해 간접적으로 접근할 수 있도록 할 수 있습니다.

다음은 접근 제어자의 사용 예시입니다

public class MyClass {
    public int publicVar;        // 모든 곳에서 접근 가능
    protected int protectedVar;  // 동일 패키지 및 하위 클래스에서 접근 가능
    int defaultVar;              // 동일 패키지에서만 접근 가능 (default 접근 제어자)
    private int privateVar;      // 클래스 내부에서만 접근 가능

    public void publicMethod() {
        // 외부에서 호출 가능
    }

    protected void protectedMethod() {
        // 동일 패키지 및 하위 클래스에서 호출 가능
    }

    void defaultMethod() {
        // 동일 패키지에서만 호출 가능
    }

 

728x90
300x250