코틀린에서는 주 생성자와 보조 생성자를 사용하여 클래스의 인스턴스를 생성할 수 있습니다. 아래에서는 각각의 생성자에 대한 내용을 설명합니다.
1. 주 생성자 (Primary Constructor)
주 생성자는 클래스의 헤더 부분에 선언됩니다. 주 생성자는 클래스의 주요 속성을 정의하고 초기화할 수 있는 기능을 제공합니다.
간단한 주 생성자 선언
class Person(val name: String, var age: Int)
- val 키워드는 읽기 전용 프로퍼티를 나타냅니다.
- var 키워드는 쓰기 가능한 프로퍼티를 나타냅니다.
생성자 파라미터에 디폴트 값 지정
class Person(val name: String = "John", var age: Int = 30)
생성자 파라미터에 기본 값을 지정하여, 해당 파라미터를 생략할 수 있습니다.
초기화 블록 사용
class Person(val name: String, var age: Int) {
init {
println("Person initialized with name: $name, age: $age")
}
}
init 블록을 사용하여 클래스 인스턴스가 생성될 때 실행되는 초기화 코드를 작성할 수 있습니다.
2. 보조 생성자 (Secondary Constructor)
보조 생성자는 클래스 내부에 constructor 키워드를 사용하여 정의됩니다. 주 생성자와 함께 사용되어 클래스의 인스턴스를 다양한 방식으로 초기화할 수 있습니다.
간단한 보조 생성자
class Person {
var name: String = ""
var age: Int = 0
constructor(name: String, age: Int) {
this.name = name
this.age = age
}
}
주 생성자와 함께 사용
class Person(val name: String, var age: Int) {
// 주 생성자와 함께 사용되는 보조 생성자
constructor(name: String) : this(name, 0)
}
보조 생성자에서 this 키워드를 사용하여 주 생성자를 호출할 수 있습니다.
여러 개의 보조 생성자
class Person {
var name: String = ""
var age: Int = 0
constructor(name: String, age: Int) {
this.name = name
this.age = age
}
// 또 다른 보조 생성자
constructor(name: String) {
this.name = name
}
}
클래스 내에 여러 개의 보조 생성자를 정의할 수 있습니다.
생성자 호출 순서
클래스의 인스턴스를 생성할 때는 주 생성자가 먼저 호출되며, 그 후에 보조 생성자가 호출됩니다. 초기화 블록은 주 생성자 호출 시에 실행됩니다.
class Example(val name: String) {
init {
println("Init block: $name")
}
constructor(name: String, age: Int) : this(name) {
println("Secondary constructor: $age")
}
init {
println("Another init block")
}
}
이렇게 생성자를 사용하면 다양한 방식으로 클래스의 인스턴스를 초기화할 수 있습니다.
With ChatGPT
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 내포된 클래스 (0) | 2023.12.30 |
---|---|
코틀린 멤버 가시성 (0) | 2023.12.29 |
코틀린 클래스 내부 구조 (0) | 2023.12.25 |
코틀린 클래스 정의 (0) | 2023.12.25 |
코틀린 try 문으로 예외 처리 (0) | 2023.12.25 |