스코프
스코프가 지정되는 범위는 패키지내부, 클래스내부, 함수내부 등이 있다
스코프에 대한 3가지 규칙
- 스코프 외부에서는 스코프 내부의 멤버를 '참조연산자'로만 참조가 가능하다 a.eat( ) *클래스의 멤버 참조할 때 클래스 외부에서 인스턴스명의 참조연산자(.) 사용하여 접근하는것, 생각해보면 하나의 패키지에서 다른 패키지 내의 멤버를 참조 할 때도 import.com.google.dimo improt연산자와 참조연사자를 사용했어야 했다.
- 동일 스코프 내에서는 멤버들을 '공유'할 수 있다.
- 하위 스코프에서는 상위 스코프의 멤버가 가려진다.
접근제한자
접근제한자는 스코프 외부에서 스코프 내부에 접근할 때 그 권한을 '개발자가 제어'할 수 있는 기능이다.
접근제한자에는 4가지가 존재한다.
- public
- internal
- private
- protected
이 접근제한자들은 변수(private var a = "…"), 함수(public fun b{..}), 클래스(internal class C {..}) 선언시 맨 앞에 붙여 사용한다.
상황에 따라 두가지 경우로 기능이 나뉘는데,
패키지 스코프
- public(기본값) : 어떤 패키지에서도 접근 가능
- internal : 같은 모듈 내에서만 접근 가능
- private : 같은 파일 내에서만 접근 가능
- protected(x) : 패키지 스코프에서 사용하지않음!
클래스 스코프
- public(기본값) : 클래스 외부에서 접근 가능
- private : 클래스 내부에서만 접근 가능
- protected: 클래스 자신과 상속받은 클래스에서 접근 가능
- internal(x) : 클래스 스코프에서 사용하지 않음!
스코프는 멤버들의 가용 범위를 지정해 둔 단위로 개발자는 의도에 따라 스코프 안에 변수나, 함수, 클래스를 배치할 수 있으며, 접근 제한자는 이러한 스코프의 외부와 내부에서 사용할 멤버를 분리하여 스코프 외부에서 건드리지 말아야 할 기능이나 값들을 완전하게 제한하는 용도를 가지고 있다.
'코틀린' 카테고리의 다른 글
코틀린(14) - 람다함수를 이용한 스코프 함수 (0) | 2022.03.21 |
---|---|
코틀린(13) - 고차함수, 람다함수 (0) | 2022.03.21 |
코틀린(11) - 코틀린의 기본적인 프로젝트 구조 (0) | 2022.03.21 |
코틀린(10) - 오버라이딩 , 추상화, 인터페이스 (0) | 2022.03.21 |
코틀린(9) - 상속, 상속으로 속성과 기능을 확장 (0) | 2022.03.21 |
댓글