Kotlin 접근제한자
Kotlin 접근제한자
Kotlin의 접근제한자
접근제한자란 무엇인가요?
접근제한자는 코틀린에서 변수나 메소드를 객체를 통해 호출할 수 있는지 여부를 제한하는 것을 의미합니다. 이는 데이터에 무분별한 접근을 막아 프로그램의 유지보수를 용이하게 하는 데 사용됩니다.
Kotlin의 접근제한자 종류
Kotlin에서는 public
, private
, internal
, protected
네 가지 접근제한자를 제공합니다.
- public: 명시하지 않으면 기본적으로
public
이며, 어디서나 접근할 수 있습니다. - private: 동일한 클래스 내부에서만 접근할 수 있습니다.
- internal: 같은 모듈 내부에서만 접근할 수 있습니다.
- protected: 기본적으로
private
이지만, 상속을 받은 경우에는 타 모듈에서도 접근할 수 있습니다.
접근제한자 사용 예시
아래 예시 코드는 AccessTestClass
내에서 각 접근제한자가 어떻게 작동하는지 보여줍니다.
b
변수와publicTest
함수는 접근제한자가 명시되지 않았으므로 기본적으로 public 입니다.a
변수와publicTest2
함수는 public으로 명시되어 외부에서 접근 가능합니다.c
변수와privateTest
함수는 private으로 선언되어 동일한 클래스 내부에서만 접근할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// AccessTestClass.kt
class AccessTestClass {
var b = 2 // public (기본값)
public var a:Int = 1 // public
private var c = 3 // private
fun publicTest() { // public (기본값)
println("public 입니다")
}
public fun publicTest2() { // public
println("public 입니다")
}
private fun privateTest() { // private
println("private 입니다")
}
}
fun main() {
var accessTestClass = AccessTestClass()
// accessTestClass.a // 접근 가능
// accessTestClass.b // 접근 가능
// accessTestClass.c // 컴파일 에러: private이므로 외부에서 접근 불가
// accessTestClass.publicTest() // 접근 가능
// accessTest_class.publicTest2() // 접근 가능
// accessTestClass.privateTest() // 컴파일 에러: private이므로 외부에서 접근 불가
}
위 main
함수 예시에서 .
(점) 연산자를 통해 accessTestClass
객체의 멤버에 접근을 시도할 때, public
또는 internal
로 선언된 멤버만 외부에서 접근할 수 있음을 확인할 수 있습니다.
This post is licensed under CC BY 4.0 by the author.