앱, 어플리케이션 만드는 법 - [Kotlin] 속성(Property) 개념
#주의#
이 글은 강의 글이 아닙니다.
틀린 부분, 깔끔하지 못한 부분 있을 수 있습니다.
지적해 주시면 저도 공부가 되고, 앞으로 이 글을 보실 분들에게도 도움이 될 거라 생각합니다.
속성(Property)란?
Kotlin에서 Property는 객체의 상태를 나타내는 변수 또는 값을 의미합니다. Property는 클래스 내부에 선언되며, 객체의 상태를 나타내는 데이터를 저장하거나 가져오는 역할을 합니다. Kotlin에서는 속성을 정의할 때 val 또는 var 키워드를 사용합니다. val 키워드는 읽기 전용 속성을, var 키워드는 쓰기 가능한 속성을 정의합니다. Kotlin에서 Property는 다음과 같은 기능을 제공합니다.
Property 선언
Kotlin에서 Property를 선언하는 방법은 다음과 같습니다.
var propertyName: PropertyType = propertyValue
get() = field
set(value) {
field = value
}
위와 같이 var 키워드를 사용하여 Property 이름을 선언하고, 타입과 초기값을 지정합니다. Property의 값을 가져오는 get() 함수와 값을 설정하는 set() 함수를 작성합니다.
Getter 함수
Kotlin에서 Property의 값을 가져오는 Getter 함수는 다음과 같이 작성합니다.
val propertyName: PropertyType
get() = field
위와 같이 val 키워드를 사용하여 Property 이름을 선언하고, get() 함수를 작성합니다. get() 함수 내부에서는 field 변수를 사용하여 Property의 값을 반환합니다.
Setter 함수
Kotlin에서 Property의 값을 설정하는 Setter 함수는 다음과 같이 작성합니다.
var propertyName: PropertyType
set(value) {
field = value
}
위와 같이 var 키워드를 사용하여 Property 이름을 선언하고, set() 함수를 작성합니다. set() 함수 내부에서는 field 변수를 사용하여 Property의 값을 설정합니다.
초기값
Kotlin에서 Property의 초기값은 다음과 같이 지정합니다.
var propertyName: PropertyType = propertyValue
위와 같이 Property 이름 뒤에 등호(=)와 초기값을 작성하여 Property의 초기값을 지정할 수 있습니다.
Lateinit
Kotlin에서 Lateinit은 Property의 초기값을 나중에 지정할 수 있는 기능입니다.
lateinit var propertyName: PropertyType
위와 같이 lateinit 키워드를 사용하여 Property 이름을 선언하면, 초기값을 나중에 지정할 수 있습니다.
Nullable
Kotlin에서 Nullable은 Property의 값이 null일 수 있는 기능입니다.
var propertyName: PropertyType? = null
위와 같이 Property 이름 뒤에 물음표(?)를 작성하여 Property의 값이 null일 수 있음을 나타낼 수 있습니다.
접근 제한자
Kotlin에서 Property는 접근 제한자를 지원합니다. 접근 제한자는 Property의 접근 범위를 제한하는 역할을 합니다.
private var propertyName: PropertyType = propertyValue
위와 같이 private 키워드를 사용하여 Property의 접근 범위를 클래스 내부로 제한할 수 있습니다. 이렇게 Kotlin에서는 다양한 기능을 제공하여 Property를 유연하게 활용할 수 있습니다.
'개발 이야기 > [Kotlin]' 카테고리의 다른 글
앱, 어플리케이션 만드는 법 - [Kotlin] 데이터 클래스(Data Class) 개념 (36) | 2023.05.16 |
---|---|
앱, 어플리케이션 만드는 법 - [Kotlin] 메소드, 메서드(Method) 개념 (20) | 2023.05.14 |
앱, 어플리케이션 만드는 법 - [Kotlin] 함수(Function) 개념 (27) | 2023.05.14 |
앱, 어플리케이션 만드는 법 - [Kotlin] 클래스(Class) 개념 (15) | 2023.05.13 |
앱, 어플리케이션 만드는 법 - [Kotlin] 패키지(Package) 개념 (14) | 2023.05.13 |
댓글