サイトアイコン ハジカラ

【Kotlin入門】コンパニオン・オブジェクトを使ってみる

こんにちは😀

今回は、クラスの応用として、コンパニオン・オブジェクトというをみていきます。
コンパニオン・オブジェクトとは、クラスに1つだけ作るオブジェクトです。
このオブジェクトは、「クラス名・オブジェクト名」でアクセスすることができます。

以下の処理で書いてみました。
3〜6行目がそれにあたります。
8行目の「getOutput()」関数は、結果を出力するための関数です。

class Month constructor(val month:String,val kisetsu:String){

companion object Factory {

fun show(month:String,kisetsu:String)= Month(month,kisetsu)
}

fun getOutput():String =”${month}月は、${kisetsu}の季節だ。”
}

main関数を書いてみます。
「Month.Factory.show(引数)」でコンパニオン・オブジェクトを呼び出しています。

fun main(args: Array<String>) {

val hitA = Month.Factory.show(“6″,”梅雨”)
val hitB = Month.Factory.show(“8″,”花火”)
val hitC = Month.Factory.show(“12″,”クリスマス”)

println(hitA.getOutput())
println(hitB.getOutput())
println(hitC.getOutput())
}

実行します。
月に対応した文字列が出力されています。

またオブジェクト名を省略しても書くことができます。
上記のオブジェクトでいえば、以下のように「Factory」を省略できます。

companion object {

fun show(month:String,kisetsu:String)= Month(month,kisetsu)
}

オブジェクト名が省略できるので、以下のように定義も簡略化できます。

val hitA = Month.show(“6″,”梅雨”)
val hitB = Month.show(“8″,”花火”)
val hitC = Month.show(“12″,”クリスマス”)

当然、実行結果は同じになります。

コンパニオン・オブジェクトも今回初めて書いてみましたが、クラスの初期化を必要とせず、オブジェクトの呼び出しが簡単にできますね。

今回はここまで🤚

では、また次回。

 

【Kotlin入門一覧はこちら】

モバイルバージョンを終了