【Kotlin入門】Enumクラスで無名クラスを宣言

Kotlin
スポンサーリンク

こんにちは😀

今回で、このKotlin入門は最終回とします。
最後は、前回に引き続きEnumクラスをみていきます。
Enumクラスの列挙子に無名クラスを宣言できるので、それをみていきましょう。

スポンサーリンク

無名クラスを宣言

EnumクラスHanabiを作成し、無名クラスを書いてみます。
インターフェースと似たような作りになるので、共通の関数を使えるよう無名クラスの中の関数には「override」を付けます。

enum class Hanabi{

// 無名クラスを宣言
EDOGAWA{
override fun goHanabi()=”江戸川の花火にいきましょう。”
};
}

共通の関数に関しては、以下に書きます。

抽象関数

共通で使用する関数(抽象関数と呼びます)を、17行目にて宣言します。
抽象関数と認識するため「abstract」を付けます。
また、新たに8〜14行目にに無名クラスを列挙子として追加します。
無名クラスを定義した場合、列挙子の終わりは「;」を付けるのに気を付けましょう。

enum class Hanabi{

// 無名クラスを宣言
EDOGAWA{
override fun goHanabi()=”江戸川の花火にいきましょう。”
},

ODAIBA{
override fun goHanabi()=”お台場の花火にいきましょう。”
},

SUMIDAGAWA{
override fun goHanabi()=”隅田川の花火にいきましょう。”
};

// 抽象関数を定義
abstract fun goHanabi():String
}

 

Enumクラスを呼び出す

main関数です。
無名クラスのオブジェクトの呼び出しは、以下のようになります。

Hanabi.EDOGAWA.goHanabi()

ここでは、for文を使用して全要素を取り出して出力します。
変数evalは、例えば「Hanabi.EDOGAWA」まで取得できるので、「eval.goHanabi()」で値は出力できます。

fun main(args: Array<String>) {

// リストの要素を取り出し、gatHanabi関数の戻り値を出力
for(eval in enumValues<Hanabi>()){
println(eval.goHanabi())
}
}

実行すると以下のようになります。
Enum3−1

最後に一言・・・

Enumクラスもクラス自体を列挙できれば、さらに処理の工夫の幅が広がりますね。

さて、ここまで長かったですが、これでKotlinの基本とちょっと応用は終了です。
また気づいたことがあれば検証していきたいと思います。

今回はここまで🤚

では、また次回。

 

【Kotlin入門一覧はこちら】

コメント

タイトルとURLをコピーしました