Kotlin-封印されたクラス

この章では、「封印された」クラスと呼ばれる別のクラスタイプについて学習します。このタイプのクラスは、制限されたクラス階層を表すために使用されます。封印されているため、開発者は事前定義されたタイプのデータ型を維持できます。封印されたクラスを作成するには、そのクラスの修飾子としてキーワード「sealed」を使用する必要があります。封印されたクラスは独自のサブクラスを持つことができますが、それらのサブクラスはすべて、封印されたクラスと同じKotlinファイル内で宣言する必要があります。次の例では、封印されたクラスの使用方法を示します。

sealed class MyExample {
   class OP1 : MyExample() // MyExmaple class can be of two types only
   class OP2 : MyExample()
}
fun main(args: Array<String>) {
   val obj: MyExample = MyExample.OP2() 
   
   val output = when (obj) { // defining the object of the class depending on the inuputs 
      is MyExample.OP1 -> "Option One has been chosen"
      is MyExample.OP2 -> "option Two has been chosen"
   }
   
   println(output)
}

上記の例では、「MyExample」という名前の封印されたクラスが1つあり、2つのタイプのみが可能です。1つは「OP1」、もう1つは「OP2」です。メインクラスでは、クラスにオブジェクトを作成し、実行時にそのタイプを割り当てています。これで、この「MyExample」クラスが封印されたので、実行時に「when」句を適用して、最終出力を実装できます。

封印されたクラスでは、コードを複雑にするために不要な「else」ステートメントを使用する必要はありません。上記のコードは、ブラウザに次の出力を生成します。

option Two has been chosen