JAVA/포스팅

자바 protected 제어자

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

protected 제어자는 자바에서 접근 제어를 설정하는 데 사용되며, 해당 멤버(변수, 메서드 등)를 동일 패키지 내의 클래스와 해당 클래스를 상속받은 하위 클래스에서만 접근 가능하도록 합니다.

 

1. protected 제어자 사용 예제

 

1.1. 변수에 protected 제어자 사용

// Example.java
public class Example {
    protected int protectedVar;

    public Example(int initialValue) {
        this.protectedVar = initialValue;
    }
}

protected 제어자를 가진 변수는 해당 클래스 내부와 동일 패키지 내의 클래스, 그리고 이 클래스를 상속받은 하위 클래스에서 접근할 수 있습니다.

 

1.2. 메서드에 protected 제어자 사용

public class Example {
    protected int protectedVar;

    public Example(int initialValue) {
        this.protectedVar = initialValue;
    }

    protected void protectedMethod() {
        System.out.println("This is a protected method.");
    }
}

protected 제어자를 가진 메서드도 해당 클래스 내부와 동일 패키지 내의 클래스, 그리고 이 클래스를 상속받은 하위 클래스에서 접근할 수 있습니다.

 

1.3. 상속 관계에서의 활용

// AnotherExample.java
public class AnotherExample extends Example {
    public AnotherExample(int initialValue) {
        super(initialValue);
    }

    public void accessProtected() {
        System.out.println("Accessing protectedVar: " + protectedVar);
        protectedMethod();
    }
}

protected으로 선언된 멤버는 해당 클래스를 상속받은 하위 클래스에서 사용할 수 있습니다.

 

2. protected 제어자의 특징

 

- protected로 선언된 멤버는 동일 패키지 내의 클래스 및 해당 클래스를 상속받은 하위 클래스에서만 접근 가능합니다.
- 패키지 외부에서는 protected 멤버에 직접 접근할 수 없습니다.

// OutsidePackage.java
import package_name.Example;

public class OutsidePackage {
    public static void main(String[] args) {
        Example example = new Example(42);
        // 아래 두 줄은 에러를 발생시킴
        System.out.println(example.protectedVar);
        example.protectedMethod();
    }
}

위의 예제에서 OutsidePackage 클래스는 Example 클래스의 protected 멤버에 직접 접근할 수 없습니다.

 

주의사항

 

protected 제어자는 적절하게 사용되어야 합니다. 너무 많이 사용하면 코드의 캡슐화(Encapsulation) 원칙을 위배할 수 있습니다. 적절한 접근 제어를 고려하여 사용해야 합니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 private 제어자  (0) 2023.11.11
자바 default 제어자  (0) 2023.11.11
자바 public 제어자  (0) 2023.11.11
자바 제어자(modifier)  (0) 2023.11.11
자바 static import문  (0) 2023.11.11