聞かれたから答えてあげたのです。

○「final ってなんですかー」
妾「あとから中身が変えられないようにする指定ですよ」
○「なるほどー 変わらない愛! って感じですねー」
妾「いや、愛はオブジェクト型なので、愛の存在そのものは変わらないんだけど、中身は変わっちゃうんですよ」
○「愛の形は変わって行くんですねっ」
■「すいません、おまえらこっち集中できないんですけどー!?」

 クレームが来ました。


解説:
final指定された変数は、後から変えることが出来ません。最初に100と決めたら死ぬまで100。オブジェクト型の場合でも同じで、その変数に後から違うオブジェクトを入れたりは出来ません。首尾貫徹、明治の男です。

ただ、オブジェクト型の場合。オブジェクトに命令することで、間接的に中身を変えることが可能です。例えば「渡された数字を内部に保存する」みたいな命令(*)があれば、それを使って内部の情報を書き換えられます。

なので、中身を書き換えられたら困るようなものをオブジェクト型で作る場合は、コンストラクタ以外にそういう命令を含めないで作る必要があったりします。final指定も忘れずに。


(*)いわゆる Setter

0 コメント: