Kotlinのイニシャライザに関して学びます。
イニシャライザははクラスが生成された際に、必ず呼び出されます。
コンストラクタ→initの順で呼び出されます。
使用例を見て見ましょう
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
fun main(args: Array<String>) { // name is empty var john = Person("") // name is empty var fred = Person("", 20) } class Person(name: String, age: Int) { var name: String = "" var age = 0 constructor(name: String) : this(name, 0) { this.name = name } init { if (name.isEmpty()) { println("name is empty") } } } |
プライマリ・セカンダリどちらのコンストラクタから生成しても、initが呼び出されました。