본문 바로가기
개발 언어 (Language)/Kotlin

코틀린 접근 제한자

by Tarake 2024. 8. 3.

접근 제한자


// public
class Person {
    public var name: String = "John" // 모든 곳에서 접근 가능
}

// private
class Person {
    private var age: Int = 30 // 클래스 내부에서만 접근 가능

    private fun getAge(): Int {
        return age
    }
}

// protected
open class Animal {
    protected fun makeSound() {
        println("Some sound")
    }
}

class Dog : Animal() {
    fun bark() {
        makeSound() // 상속받은 protected 메서드 접근 가능
    }
}

// iternal
internal class InternalClass {
    internal fun doSomething() {
        println("Internal method")
    }
}

접근 제한자는 클래스, 메서드, 속성, 변수 등에 대한 접근 범위를 정의하는 데 사용됩니다. 이를 통해 클래스의 구성 요소가 어디에서 접근 가능한지를 제어할 수 있습니다.

  • public
    • 설명: 기본 접근 수정자로, 모든 클래스, 패키지, 모듈에서 접근 가능합니다. 접근 제한이 없으며, 다른 모듈에서도 접근할 수 있습니다.
    • 기본값: 클래스, 메서드, 속성에 명시적으로 접근 수정자를 지정하지 않으면 기본적으로 public으로 간주됩니다.
  • private
    • 설명: 선언된 클래스, 파일 또는 내부에서만 접근할 수 있습니다. 클래스 내부에서 정의된 private 속성이나 메서드는 그 클래스 내에서만 사용 가능합니다.
    • 사용 예: 클래스 내부의 구현 세부 사항을 외부로부터 숨기고 싶을 때 사용합니다
  • protected
    • 설명: 상속 관계에 있는 클래스에서만 접근할 수 있습니다. 즉, 해당 클래스와 그 클래스의 서브클래스에서만 접근 가능합니다.
    • 사용 예: 클래스의 내부 구현을 서브클래스에서만 사용하도록 허용하고, 외부에서는 접근할 수 없도록 할 때 사용합니다.
  • internal
    • 설명: 동일한 모듈 내에서만 접근할 수 있습니다. 모듈은 같은 컴파일러에 의해 컴파일되는 코드의 집합으로, Gradle 프로젝트에서는 보통 하나의 Gradle 모듈이 하나의 모듈에 해당합니다.

 

 

출처

코틀린 공식 Docs

 

Extensions | Kotlin

 

kotlinlang.org