こんにちは😀
今回は、その場で作れるローカルなオブジェクトをみてみます。
今その場でプロパティをもつオブジェクトを作りたい、クラス名を定義するまでもない、という場合に使えるオブジェクトです。
main関数の中に定義してみましょう。
3〜6行目がその場で作成したオブジェクトです。
定義したプロパティを変更できるように「var」を指定しています。
使い方は簡単で、「オブジェクト名.プロパティ名」になります。
fun main(args: Array<String>) {
val homework = object { var holiday:String = “夏休み” var homework:String = “自由研究”}
}
println(“${homework.holiday}は、${homework.homework}の宿題があります。”)
実行します。
プロパティで指定した、「holiday」と「homework」が出力されています。
プロパティを変更することもできます。
以下のプロパティ「homework」を変更する処理を追加します。
homework.homework = “日記”
println(“${homework.holiday}は、${homework.homework}の宿題があります。”)
実行します。
2つ目の出力が想定通り出ていますね。
さらに、プロパティ「holiday」「homework」の両方とも変更する処理を追加してみます。
homework.holiday = “冬休み”
homework.homework = “習字”
println(“${homework.holiday}は、${homework.homework}の宿題があります。”)
実行すると、3つ目の出力がプロパティ2つとも変更されていますね。
Intを使って簡単な計算をしてみましょう。
以下は、オブジェクトのプロパティにIntを使用しています。
定数を定義しているので、「Int」を指定しなくても数字と認識してくれています。
val yosan = object { var a = 100000 var b = 200000 }
println((yosan.a + yosan.b).toString() + “円”)
実行すると、数字が計算されて出力されていますね。
オブジェクトが必要な場合に、名前を指定して作るほどでもない処理であれば、このような簡単な定義の仕方は便利です。
割と用途は多いように思います。
今回はここまで🤚
では、また次回。