Light Blue Pointer
본문 바로가기
Developing/TIL(Develop)

Java 접근제어자

by Greedy 2024. 5. 15.

접근제어자는 클래스, 메서드, 변수, 생성자 등의 접근 권한을 설정하는 데 사용된다

접근제어자는 코드의 가시성과 보안을 제어하는 중요한 역할을 한다

public

어디서나 접근할 수 있음을 의미

동일한 클래스, 동일한 패키지, 다른 패키지의 클래스 모두에서 접근이 가능

  • 가장 높은 접근 수준을 가집니다.
  • 모든 클래스에서 접근할 수 있습니다.
  • 클래스, 메서드, 필드, 생성자에 적용할 수 있습니다.

protected

동일한 패키지 내의 클래스와 다른 패키지의 하위 클래스에서 접근할 수 있다

  • 동일 패키지의 클래스에서 접근할 수 있다
  • 다른 패키지의 하위 클래스에서도 접근할 수 있다
  • 클래스에는 적용할 수 없고, 필드, 메서드, 생성자에만 적용할 수 있다
public class ProtectedClass {
    protected int protectedField;

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

default (package-private)

접근자를 명시하지 않으면, 해당 멤버는 기본적으로 패키지-프라이빗(package-private) 접근 수준을 가짐

동일한 패키지 내에서만 접근할 수 있음을 의미

  • 동일한 패키지의 클래스에서만 접근할 수 있다
  • 다른 패키지의 클래스에서는 접근할 수 없다
  • 클래스, 메서드, 필드, 생성자에 적용할 수 있다
class DefaultClass {
    int defaultField;

    void defaultMethod() {
        System.out.println("This is a default method.");
    }
}

private

동일한 클래스 내에서만 접근할 수 있음을 의미한다

다른 클래스에서는 접근할 수 없다

  • 가장 낮은 접근 수준을 가진다
  • 동일한 클래스 내에서만 접근할 수 있다
  • 클래스에는 적용할 수 없고, 필드, 메서드, 생성자에만 적용할 수 있다