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 |