Kotlin 문법 - 접근자, 게터/세터 (getter, setter)
학습 요약
val → 읽기 전용(기본적으로 getter만 생성)
var → 읽기/쓰기 가능(getter, setter 모두 생성)
private set → 외부에서 setter 접근 차단 (읽기 전용처럼 사용 가능)
get() → 커스텀 게터 정의 가능 (field 키워드를 사용)
data class → equals, hashCode, toString 등을 자동으로 생성하여 객체 비교나 출력에 용이
실습 코드
fun main() {
val john = Person("john", 20)
val john2 = Person("john", 20)
println(john)
println(john2)
println(john == john2)
println(john.hobby)
}
class Person(
val name: String,
var age: Int,
) {
var hobby = "축구"
private set
get() = "취미 : $field"
init {
println("init")
}
fun some() {
hobby = "야구"
}
}
정리 포인트
- 기본 getter/setter 자동 생성
val → getter만 생성
var → getter + setter 생성
- 커스텀 getter/setter
get() 또는 set() 오버라이드 가능
field → 프로퍼티의 backing field를 가리킴
- 접근 제어
private set → 외부에서 값 변경 차단 (읽기 전용처럼 사용)
- 객체 비교
- 일반 클래스: 참조(주소) 비교
data class: 값 비교 (자동으로 equals/hashCode/toString 생성)
backing field란?
정리한 내용 링크