KOTLIN · 객체지향
class & 주 생성자 & init
Kotlin 클래스의 주 생성자(primary constructor)와 초기화 블록.
객체지향입문class주생성자initgettersetter
핵심 설명
Kotlin 클래스의 주 생성자(primary constructor)와 초기화 블록.
Kotlin code
// 주 생성자 — 클래스 헤더에 직접
class Person(
val name: String, // val/var → 프로퍼티 자동 생성
var age: Int,
private val email: String // private 프로퍼티
) {
// init 블록 — 생성 시 실행
init {
require(age >= 0) { "나이는 0 이상이어야 합니다" }
println("$name 생성됨")
}
// 보조 생성자
constructor(name: String) : this(name, 0, "")
// 프로퍼티 커스텀 getter
val isAdult: Boolean
get() = age >= 18
// 프로퍼티 커스텀 setter
var nickname: String = name
set(value) {
field = value.trim() // field = backing field
}
override fun toString() = "Person($name, $age)"
}
fun main() {
val p = Person("Alice", 25, "alice@test.com")
println(p.isAdult) // true
p.nickname = " Dev "
println(p.nickname) // "Dev"
}학습 팁
init 블록은 주 생성자 실행 직후 호출됩니다. 여러 init 블록을 작성하면 선언 순서대로 실행됩니다.
주의할 점
Setter 내에서 프로퍼티에 직접 대입하면(nickname = value) 무한 재귀가 됩니다. 반드시 field 키워드를 사용하세요.
자주 묻는 질문
class & 주 생성자 & init란 무엇인가요?
Kotlin 클래스의 주 생성자(primary constructor)와 초기화 블록.
class & 주 생성자 & init 학습 시 주의할 점은 무엇인가요?
Setter 내에서 프로퍼티에 직접 대입하면( nickname = value ) 무한 재귀가 됩니다. 반드시 field 키워드를 사용하세요.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.