개발(Android)/kotlin syntax

[Kotlin syntax] Scope, Access Modifier(Public/Internal/Private/Protected)

shinyelee 2022. 4. 5. 19:19

[코틀린 문법] 스코프와 접근제한자

Scope(스코프)

// Scope(범위) //

// 언어 차원에서 멤버(변수, 함수, 클래스)를 서로 공유하여 사용할 수 있는 범위를 지정해 둔 단위
// 1. 스코프 외부에서는 스코프 내부의 멤버를 참조연산자로만 참조 가능
// 2. 동일 스코프 내에서는 멤버 공유 가능
// 3. 하위 스코프에서 상위 스코프의 멤버 재정의 가능



// 2. 예시
val a = "패키지 스코프"

class B {
    // 3. 예시
    val a = "클래스 스코프"
    fun print() {
        println(a)
    }
}

fun main() {
    // 3. 예시
    val a = "함수 스코프"
    println(a)
    B().print()
}

Access Modifier(접근제한자)

// Access Modifier(접근제한자) //

// 스코프 외부 -> 내부 접근 권한을 개발자가 제어할 수 있는 기능
// 함부로 건드리면 안 되는 기능/값을 안전하게 제한하는 용도
// 변수, 함수, 클래스 선언시 앞에 붙임
// public, internal, private, protected



// Package Scope(패키지 스코프) //

// public -> 어떤 패키지에서도 접근 가능
// internal -> 같은 모듈 내에서만 접근 가능
// private -> 같은 파일 내에서만 접근 가능



// Class Scope(클래스 스코프) //

// public -> 클래스 외부에서 늘 접근 가능
// private -> 클래스 내부에서만 접근 가능
// protected -> 클래스 자신과 상속받은 클래스에서 접근 가능

참고

 

반응형