코틀린에서 합성 프로퍼티(composite property)는 여러 다른 프로퍼티들을 결합하여 하나의 프로퍼티처럼 다뤄질 수 있도록 하는 기능을 말합니다. 이는 코드의 가독성을 높이고 중복을 방지하는 데 도움이 됩니다.
합성 프로퍼티 예제
class Person {
var firstName: String = ""
var lastName: String = ""
// 합성 프로퍼티
val fullName: String
get() = "$firstName $lastName"
}
fun main() {
val person = Person()
person.firstName = "John"
person.lastName = "Doe"
println(person.fullName) // 출력: John Doe
}
위의 예제에서 Person 클래스는 firstName과 lastName이라는 두 개의 프로퍼티를 가지고 있습니다. 그리고 fullName이라는 합성 프로퍼티를 선언하여 이 두 프로퍼티를 조합하여 사용자의 전체 이름을 나타냅니다.
주의사항
1. 읽기 전용 프로퍼티로만 구성: 합성 프로퍼티는 읽기 전용이어야 합니다. 위의 예제에서 fullName은 get() 메서드를 통해 값을 반환하므로 읽기 전용으로 간주됩니다.
2. 백킹 필드 사용 불가: 합성 프로퍼티는 백킹 필드(backing field)를 가질 수 없습니다. 따라서 프로퍼티의 값을 계산하기 위해 get() 메서드에서 다른 프로퍼티들의 값을 조합하거나 계산해야 합니다.
3. setter 사용 불가: 합성 프로퍼티는 읽기 전용이므로 setter를 제공할 수 없습니다.
4. 다른 프로퍼티에 의존: 합성 프로퍼티는 다른 프로퍼티에 의존하므로, 해당 프로퍼티들이 항상 올바른 값을 가지도록 유의해야 합니다.
합성 프로퍼티는 코드의 가독성을 높이고 유지보수를 쉽게 만들어주는 유용한 기능 중 하나입니다. 여러 프로퍼티를 한꺼번에 다뤄야 하는 경우에 활용될 수 있습니다.
With ChatGPT
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 널 가능성 애너테이션 (0) | 2024.01.06 |
---|---|
코틀린 플랫폼 타입 (0) | 2024.01.06 |
코틀린 Unit과 void (0) | 2024.01.06 |
코틀린 자바 메서드와 필드 (0) | 2024.01.06 |
자바 코드를 코틀린에서 사용 (0) | 2024.01.06 |