08/02/17 04:38:59
>>662
メンバ変数って用語はあまりJavaでは使われないかもしれない。
存在する理由はいろいろあると思うけど、例えば、
同じクラス内でも別スコープなら同じ変数名が使えるローカル変数と違い、
フィールドはクラス全体が同じスコープになるから名前がダブらないように気をつけないといけない。
名前付けが面倒だからと同じ変数を違う場所で違う役割に使用するのはバグの元になりやすい。
また、ローカル変数の方がフィールドに定義されたものよりアクセスがたいていのJVM実装では速いはず。
それに、スレッドごとにメソッドの呼出しごとに違う場所が用意されるローカル変数と違って、
フィールドはインスタンスまたはクラスごとに一つしかないという違いもある。
マルチスレッドプログラミングやメソッドの再帰呼び出しをやり始めればその違いが分かる。
ごくごく小さなプログラムだけなら、そうは感じないのかもしれないけれど、
自分でプログラムを書き始めればローカル変数を全て排除しようとすると扱いにくくなると感じると思うよ。