LoginSignup
0
0

More than 1 year has passed since last update.

getter, setter は内部で作動しているぞ!【Kotlin】

Last updated at Posted at 2023-04-09

まずはこのコードを見てください

val song = Song()
song.name = "仰げば尊し"
pirntln(song.name)
  1. Songクラスのインスタンスを生成
  2. nameフィールドに値を代入
  3. nameフィールドを取得し表示
  • 直接的にフィールドを代入&取得しているように見えますよね?
  • 実際は setter, getter が呼び出されています

getter, setter は自動的に作成されます

  • クラスにフィールドを定義すると getterと setter が内部に生成されます
  • フィールドと getter, setter の組み合わせをプロパティと呼びます
class Song {
  // nameというプロパティを定義
  var name: String = ""
}
val song = Song()
// 内部のsetter経由で値を格納
song.name = "仰げば尊し"
// 内部のgetter経由で値を取得
pirntln(song.name)

プロパティを「書き換え不可」にしたいときは

  • varval にすることで getter のみが生成されるようになります
class Song(id: int) {
  val id
  var name: String = ""
  • コンストラクタで初期化された以降は変更できません
val song = Song(1)
song.id = 2 // コンパイルエラー発生
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0