240515_디모의 코틀린 강의 #13강. 변수/함수/클래스의 접근범위와 접근제한자
2024. 5. 14. 14:31ㆍTIL(Today I Learned)
유튜브 - 디모의 코틀린 문법 강의 정리
#13강. 변수/함수/클래스의 접근 범위와 접근제한자
1. 스코프: 언어 차원에서 변수, 함수, 클래스 등의 멤버들을 서로 공유할 수 있는 범위를 지정해 둔 단위
2. 스코프의 규칙
1) 스코프 외부에서는 스코프 내부의 멤버를 참조연산자로만 참조할 수 있다. ( 예시: a.eat() )
2) 동일 스코프 내에서는 멤버를 공유할 수 있다.
3) 하위 스코프에서 상위 스코프의 멤버를 재정의할 수 있다.
val a = "패키지 스코프"
class B {
fun print(){
println(a)
}
}
fun main(){
println(a)
B.print()
}
// "패키지 스코프" 2번 출력 ==> 변수 a는 클래스 B나 main 함수에 속해있지 않지만
// 동일 스코프 내에서 변수가 공유되었음
3. 접근제한자: 스코프 외부에서 내부로 접근 시, 접근 권한을 제어할 수 있는 기능
1) 종류: public, internal, private, protected / 변수/함수/클래스 선언 시 맨 앞에 붙여 사용
2) 사용 방법
(1) 패키지 스코프에서의 사용
- public(기본값): 어떤 패키지에서도 접근 가능
- internal: 같은 모듈 내 접근 가능
- private: 같은 파일 내 접근 가능
- protected: 사용 불가
(2) 클래스 스코프에서의 사용
- public(기본값): 클래스 외부에서 늘 접근 가능
- private: 클래스 내 접근 가능
- protected: 클래스 자신 및 상속받은 클래스에서 접근 가능
- internal: 사용 불가
'TIL(Today I Learned)' 카테고리의 다른 글
240517_디모의 코틀린 강의 #15. 스코프 함수 (0) | 2024.05.20 |
---|---|
240516_디모의 코틀린 강의 #14. 고차함수와 람다함수 (0) | 2024.05.20 |
240514_디모의 코틀린 강의 #12강. 기본 프로젝트 구조 (0) | 2024.05.14 |
240513_디모의 코틀린 강의 #11강. 오버라이딩과 추상화 (0) | 2024.05.14 |
240510_디모의 코틀린 강의 #10강. 클래스의 상속 (0) | 2024.05.06 |