728x90
접근지정자(Access Specifier)
: 클래스나 멤버들을 다른 클래스에서 접근해도 되는지 여부를 선언하는 것
Java
- public
- 패키지와 상관없이 모든 클래스들이 접근 가능한 것
- 슈퍼 클래스의 public 멤버 : 서브 클래스는 항상 접근 가능
- protected
- 다른 패키지 내 클래스 접근
- 대신 부모와 자식 간에만 공유가 가능하고, 메인클래스에서 다른 패키지의 변수에 직접 접근하는 것은 불가능함
- 슈퍼클래스의 protected 멤버 : 같은 패키지 내의 모든 클래스 접근 허용. 패키지 여부와 상관없이 서브클래스는 접근 가능
- default
- 슈퍼클래스의 default 멤버 : 서브 클래스가 동일한 패키지에 있을 때, 접근 가능
- private
- 클래스 내의 멤버에게만 접근이 허용되는 것
- 슈퍼 클래스의 private 멤버 : 서브 클래스에서 접근할 수 없음
Kotlin
- default
- 모두 공개
- internal
- 같은 모듈 내에서만 볼 수 있으며, 모듈은 한거번에 컴파일되는 코틀린 파일들
- 패키지 전용 가시성에 대한 대안
- protected
- 오직 어떤 클래스나 그 클래스를 상속한 클래스 안에서만 보임
- 클래스를 확장한 함수는 그 클래스의 private이나 protected 멤버에 접근할 수 없음
- private
- 같은 클래스 안에서만 볼 수 있음
'두두의 IT' 카테고리의 다른 글
[OOP] 추상클래스와 인터페이스 (0) | 2022.04.11 |
---|---|
[Kotlin] annotation class (0) | 2022.04.11 |
[Kotlin] enum class (0) | 2022.04.11 |
[Java, Kotlin] final / open (0) | 2022.04.11 |
[Java, Kotlin] 생성자 (0) | 2022.04.11 |