테크과학! DiMo
개발 환경: play.kotlinlang.org
스코프란
언어 차원에서 변수나 함수, 클래스 같은 '멤버'들을 서로 공유하여 사용할 수 있는 범위를 지정해 둔 단위이다.
스코프가 지정되는 범위
패키지 내부, 클래스 내부, 함수 내부
스코프 3가지 규칙
1. 스코프 외부에서는 스코프 내부의 멤버를 '참조 연산자'로만 참조가 가능하다.
2. 동일 스코프 내에서는 멤버들을 '공유'할 수 있다.
3. 하위 스코프에서는 상위 스코프의 멤버를 재정의 할 수 있다.
val a = "패키지 스코프"
class B {
fun print() {
println(a)
}
}
fun main() {
println(a)
B().print()
}
Output:
패키지 스코프
패키지 스코프
접근 제한자란?
스코프 외부에서 스코프 내부에 접근 할 때 그 권한을 '개발자가 제어' 할 수 있는 기능
종류
public
internal
private
protected
패키지 스코프에서는
public(기본값) : 어떤 패키지에서도 접근 가능
internal: 같은 모듈 내에서만 접근 가능
private: 같은 파일 내에서만 접근 가능
*protected는 패키지 스코프에서는 사용하지 않음
클래스 스코프에서는
public(기본값) : 클래스 외부에서 항상 접근 가능
private : 클래스 내부에서만 접근 가능
protected : 클래스 자신과 상속받은 클래스에서 접근 가능
*internal은 클래스 스코프에서는 사용하지 않음
'Kotlin > 기본 문법' 카테고리의 다른 글
코틀린 강좌 #14 스코프 함수 (0) | 2020.12.19 |
---|---|
코틀린 강좌 #13 고차함수와 람다함수 (0) | 2020.12.19 |
코틀린 강좌 #11 기본 프로젝트 구조 (0) | 2020.12.17 |
코틀린 강좌 #10 오버라이딩과 추상화 (0) | 2020.12.17 |
코틀린 강좌 #9 클래스의 상속 (1) | 2020.12.17 |