- ベストアンサー
変数の宣言箇所
javaの変数の宣言箇所についてご意見をお聞かせください。 javaでメソッドの先頭で変数を纏めて宣言しているのを良く見かけますが、これは何故でしょうか。 自分は変数を使う時に一緒に宣言する方が見やすいと思いますし、ifやfor文の中で変数を宣言すると抜けたときに開放されると思います。 見やすさ、効率等を考えても、変数を使用する時に一緒にする方がよい と思いますが、如何でしょうか。 C言語とかの習性でしょうか。 ご意見、宜しくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
1#です。 URL張り忘れました、面目ないですm(__)m ご参照ください。
その他の回答 (5)
- yoshog
- ベストアンサー率66% (6/9)
過去の回答者の方と同じくC言語とかの習性だと思います。 変数のスコープという考え方が曖昧なので。 ただ、Javaでは変数のスコープは意識したほうがよく、そのスコープは極力最小になるように心がけるべきだと思います。 理由としては、ムダに広いスコープで変数をもつと、いつまでたっても変数が開放されずGCの対象にならない、というのと、何より、バグの原因になるからです。
- isle
- ベストアンサー率51% (77/150)
#4の補足です。 > C言語とかの習性でしょうか。 逆です。 Cのように単独のブロック({})でスコープを限定できないのでメソッドの先頭で宣言したほうが面倒が少ないわけです。
- isle
- ベストアンサー率51% (77/150)
public static void main(String[] args) { int i = 0; { int i = 1; for (i=2; i<10; i++) { int i = 999; } } } Javaだと上記のような宣言がことごとくエラーになります。 #C++だとエラーになりません。 なので後からコードを弄ったときにエラーが出て余計な手間が掛かることがしばしばあり、 それをあらかじめ防ぐ意味でメソッドの先頭で宣言するようにしています。
- Foxtrot_OW
- ベストアンサー率38% (19/49)
>C言語とかの習性でしょうか。 そのとおりです。変数が必要になった時点で宣言したほうがスコープが小さくなり、多少はコードは読みやすくなったりミスが減ったりするかもしれません。それにも関わらず、長年のクセが抜けない人は少なくないようです。
こんにちわ。 自分はメソッドの冒頭で宣言をするほうが、個人的には書きやすく、読みやすいです。 ただ、それ以上に何かきっちりした理由が説明できないので、そういう人もいる程度の認識でご参考いただければと思います。 参考URLもご覧ください。 特に規定が無ければ、必ず冒頭で宣言をする必要は無いみたいですね。
お礼
前にもおなじような質問があったのですね。 参考になりました。