![]() | Kotlinスタートブック -新しいAndroidプログラミング 新品価格 |

Kotlin スタートアップを読んでて気になった
イニシャライザとコンストラクタを書いてみた
・コード
class Rational(val numerator:Int, val denominator:Int) {
constructor(numerator: Int) : this(numerator, 1) {
println("constructor")
}
init {
println("initialize ${numerator}")
require(denominator != 0)
}
}
fun main(args: Array) {
val half = Rational(1, 2)
println(half.numerator)
println(half.denominator)
val five = Rational(5)
println(five.numerator)
println(five.denominator)
}
・結果
initialize 1
1
2
initialize 5
constructor
5
1
・処理の流れ
コンストラクタ(セカンダリがある場合はパラメータ渡してる)
↓
イニシャライザ
↓
セカンダリコンストラクタ
また、プライマリコンストラクタがあると
セカンダリコンストラクタはプライマリコンストラクタを呼ばないといけない
プライマリがなければ呼ばなくてよい
タグ:Kotlin