-
[Kotlin] 코틀린 생성자(Constructor)코틀린 공부/코틀린 기초 2024. 5. 17. 11:31
코틀린의 생성자를 알기는 했지만 너무 간략하게만 알고 있어서 좀더 명확하게 공부할 필요성을 느껴 공부할 필요성이 있었다.
코틀린의 생성자(Constructor)
코틀린에서는 하나의 주생성자와 여러개의 부 생성자를 나눠서 사용할 수 있다.
1. 주생성자
a) constructor 키워드 사용
class Test1(private val name: String, val age: Int, val money: Int)
b) constructor 키워드 사용
class Test1 constructor(private val name: String, val age: Int, val money: Int)
c) init()
- 주생성자 같은 경우 생성자를 만들면서 수행하고 싶은 기능을 수행할 수 없다. 그래서 있는게 초기화 블록이다.
class Test1 (private val name: String, val age: Int, val money: Int) { init { println("init - $name") } }
위와 같이 init()을 통해 필요한 기능을 class가 만들어지면서 수행할 수 있다.
d) default값 정의
- 미리 default 값도 정의할 수 있다.
class ConstructorExample (private val name: String, val age: Int, val money: Int = 1)
2. 부생성자
부 생성자는 클래스 본문 안에서 정의되는 생성자다.
class ConstructorExample (private val name: String, val age: Int, val money: Int) { init { println("init - $name") } constructor() : this("Tom") { println("constructor1") } constructor(name: String) : this(name, 11) { println("constructor2") } constructor(name: String, age: Int) : this(name, age, 10000){ println("constructor3") } }
위에 class를 불러와서 실행 시킬 경우 init에 들어 있는 것이 가장 먼저 불러와진다.
val constructorExample = ConstructorExample() init - Tom constructor3 constructor2 constructor1
'코틀린 공부 > 코틀린 기초' 카테고리의 다른 글
[Kotlin] object (0) 2024.05.23 [Kotlin] 스코프 함수 (Scope Function) (0) 2024.05.23 [Kotlin] 고차함수와 람다함수 (0) 2024.05.22 [Kotlin] 추상 클래스와 인터페이스 (0) 2024.05.21 [Kotlin] 코틀린 class (open, data , sealed, internal class) (0) 2024.05.17