osa2's memo

自分の記憶のために・・・。

コンテナオブジェクトのgetter/setter

Kotlinを初歩の初歩から勉強中。

値の出し入れだけの getter, setterは書かなくて良い

(カスタムも書こうと思えば書ける)。

fun main(args: Array<String>) {
val bob = Person("Bob", false)
println(bob.name)
println(bob.isMarried)
bob.isMarried = true
println(bob.isMarried)
}

class Person (
val name: String,
var isMarried: Boolean
)

これね。Javaの世界では長らく(もしかすると今も)タブーですよね。勝手にフィールドの値を外から書き換えるな。「カプセル化」しているのだから。でも、データ運ぶだけのオブジェクトなんて、凝ったことしないから getter / setter なんてぜ~んぶパラメータの値のセットと取り出しのreturnだけ。Eclipseとかで自動生成でズラズラとgetter / setter 書けるけどバカバカしくて、最近はもうコンテナだと思えばフィールドは public にしていた。

どこの世界も、一度ドグマ的シキタリができあがっちゃうと、クロフネが来るまで駄目なんだろうな。。