default 제어자는 자바에서 접근 제어를 설정하는 데 사용되며, 해당 멤버(변수, 메서드 등)를 동일 패키지 내에서만 접근 가능하도록 합니다. default 제어자는 별도의 제어자를 명시하지 않으면 기본적으로 적용되는 제어자입니다.
1. default 제어자 사용 예제
1.1. 변수에 default 제어자 사용
// Example.java
class Example {
int defaultVar;
Example(int initialValue) {
this.defaultVar = initialValue;
}
}
default 제어자를 가진 변수는 해당 클래스 내부와 동일 패키지 내의 클래스에서만 접근할 수 있습니다.
1.2. 메서드에 default 제어자 사용
// Example.java
class Example {
int defaultVar;
Example(int initialValue) {
this.defaultVar = initialValue;
}
void defaultMethod() {
System.out.println("This is a default method.");
}
}
default 제어자를 가진 메서드도 해당 클래스 내부와 동일 패키지 내의 클래스에서만 접근할 수 있습니다.
1.3. 패키지 내에서의 활용
// AnotherClassInSamePackage.java
class AnotherClassInSamePackage {
public static void main(String[] args) {
Example example = new Example(42);
System.out.println(example.defaultVar);
example.defaultMethod();
}
}
위의 예제에서 AnotherClassInSamePackage 클래스는 Example 클래스의 default 멤버에 접근할 수 있습니다.
2. default 제어자의 특징
- default로 선언된 멤버는 동일 패키지 내의 클래스에서만 접근 가능합니다.
- 패키지 외부에서는 default 멤버에 직접 접근할 수 없습니다.
// OutsidePackage.java
import package_name.Example;
public class OutsidePackage {
public static void main(String[] args) {
Example example = new Example(42);
// 아래 두 줄은 에러를 발생시킴
System.out.println(example.defaultVar);
example.defaultMethod();
}
}
위의 예제에서 OutsidePackage 클래스는 Example 클래스의 default 멤버에 직접 접근할 수 없습니다.
3. 주의사항
- default 제어자는 다른 제어자를 명시하지 않은 경우에 자동으로 적용되기 때문에 특별한 경우가 아니라면 명시적으로 사용되지 않습니다.
- 캡슐화(Encapsulation)를 위해 적절한 접근 제어를 고려하여 사용해야 합니다. 필요한 경우에만 default 제어자를 사용하는 것이 좋습니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 final 제어자 (0) | 2023.11.12 |
---|---|
자바 private 제어자 (0) | 2023.11.11 |
자바 protected 제어자 (0) | 2023.11.11 |
자바 public 제어자 (0) | 2023.11.11 |
자바 제어자(modifier) (0) | 2023.11.11 |