以下の内容はhttps://uga-box.hatenablog.com/entry/2024/08/30/000000より取得しました。


【Kotlin】クラスの getter と setter

Kotlin では、プロパティ(変数)の宣言時に、gettersetter が自動的に生成されることを知った

これは、Kotlin のプロパティが Java のフィールドに直接アクセスするのではなく、背後でメソッドを使ってアクセスする仕組みになっているらしい

この自動生成される getter と setter によって、プロパティの値を取得したり、変更したりする際に追加のコードを書く必要がなくなる

変数の定義方法に val(読み取り専用) と var(読み書き可能) があるが、val にはgetter だけが生成され、setter は生成されないから代入が不可となっていると理解した

varは以下のようにして記述するが、

var age: Int = 25

直接フィールドを操作しているのではなく、クラスの getter と setter で値を操作している

fun getAge(): Int {
    return field
}

fun setAge(value: Int) {
    field = value
}

カスタム getter と setter

自動生成された getter や setter ではなく、自分でカスタムのロジックを定義することも可能

例: カスタム getter

val name: String = "Kotlin"
    get() = field.uppercase() // 値を大文字にして返す

この name プロパティにアクセスする際、内部の fielduppercase() で大文字に変換して返す

println(name)  // 出力: KOTLIN

例: カスタム setter

var age: Int = 25
    set(value) {
        field = if (value >= 0) value else 0 // 0以上の値のみを許可
    }

このカスタム setter では、age プロパティに負の値を設定しようとした場合、自動的に 0 に置き換える

age = -5
println(age)  // 出力: 0



以上の内容はhttps://uga-box.hatenablog.com/entry/2024/08/30/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14