初めに
kotlin でのコンストラクタに関するメモ
コンストラクタとは
クラスの中の変数であるメンバを初期化するためのもの。
インスタンスが作成されたとき最初に実行される。
コンストラクタの実装
コンストラクタは以下のようにして実装できます。
以下のコードのクラスでは、車のメーカーの種類としてtype
、製造年としてmodel
を用意してあります
//CarContsructorの隣に()がない
class CarContsructor{
var type:String? = null
var model:Int?=null
constructor(type:String,model:Int){
this.type = type
this.model = model
}
}
左側のthis.type
とthis.model
はクラスの中のメンバを指していて、右のtype
とmodel
はコンストラクタの引数の値になっています。
また、以下のような書き方も可能です。この場合、val car = CarConstructor()
のように使えます。
//CarContsructorの隣に()がある
class CarContsructor(){
var type:String? = null
var model:Int?=null
constructor(type:String,model:Int):this(){
this.type = type
this.model = model
}
}
先にコンストラクタのとこが呼ばれた後に、メンバの定義がされて初期化される流れになってますね。
constructor
を書くのが面倒っていう人は以下のようにしてプライマリーコンストラクタを利用して短く書けます。。すっきりしてこっちのほうがいいですね。
上の2つのコードと比較してかなり行数が省略されています。
class CarOptions(type:String,model:Int){
var type:String? = type
var model:Int?= model
}