Memories in SeoK

기억하고 싶은 것들, 기억해야 하는 것들

개발/자바 Java

[Java 초급] 접근 제한자

Seo K 2024. 5. 14. 15:25

클래스, 생성자, 메서드, 필드에 (변수) 접근하거나 호출할 수 있는 범위를 지정한다

  • public: 접근에 제한이 없다
    가장 흔히 사용하고 있다
  • protected: 동일 패키지 내에서, 그리고 상속받은 자녀 클래스에서 접근 가능
    상속을 받았다면 다른 클래스에 있더라도 접근할 수 있다
    최상위 클래스에는 적용할 수 없다 (내부 클래스에는 적용 가능)
  • package-private: 동일 패키지 내에서만 접근 가능
    접근 제한자 자리에 아무것도 입력하지 않으면 적용된다
    class MyClass {  // 기본 접근 제한자로 정의된 클래스
        void myMethod() {  // 기본 접근 제한자로 정의된 메서드
            //... do Something
        }
    }
    흔히 "default"라고도 부르는데 공식 용어는 아닌 것 같다
  • private: 클래스 내부에서만 접근 가능
    최상위 클래스에는 적용할 수 없다 (내부 클래스에는 적용 가능)