• ベストアンサー

変数の宣言箇所

javaの変数の宣言箇所についてご意見をお聞かせください。 javaでメソッドの先頭で変数を纏めて宣言しているのを良く見かけますが、これは何故でしょうか。 自分は変数を使う時に一緒に宣言する方が見やすいと思いますし、ifやfor文の中で変数を宣言すると抜けたときに開放されると思います。 見やすさ、効率等を考えても、変数を使用する時に一緒にする方がよい と思いますが、如何でしょうか。 C言語とかの習性でしょうか。 ご意見、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#99579
noname#99579
回答No.2

1#です。 URL張り忘れました、面目ないですm(__)m ご参照ください。

参考URL:
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30520&forum=7
take_july
質問者

お礼

前にもおなじような質問があったのですね。 参考になりました。

その他の回答 (5)

  • yoshog
  • ベストアンサー率66% (6/9)
回答No.6

過去の回答者の方と同じくC言語とかの習性だと思います。 変数のスコープという考え方が曖昧なので。 ただ、Javaでは変数のスコープは意識したほうがよく、そのスコープは極力最小になるように心がけるべきだと思います。 理由としては、ムダに広いスコープで変数をもつと、いつまでたっても変数が開放されずGCの対象にならない、というのと、何より、バグの原因になるからです。

  • isle
  • ベストアンサー率51% (77/150)
回答No.5

#4の補足です。 > C言語とかの習性でしょうか。 逆です。 Cのように単独のブロック({})でスコープを限定できないのでメソッドの先頭で宣言したほうが面倒が少ないわけです。

  • isle
  • ベストアンサー率51% (77/150)
回答No.4

 public static void main(String[] args)  {   int i = 0;   {    int i = 1;    for (i=2; i<10; i++)    {     int i = 999;    }   }  } Javaだと上記のような宣言がことごとくエラーになります。 #C++だとエラーになりません。 なので後からコードを弄ったときにエラーが出て余計な手間が掛かることがしばしばあり、 それをあらかじめ防ぐ意味でメソッドの先頭で宣言するようにしています。

回答No.3

>C言語とかの習性でしょうか。 そのとおりです。変数が必要になった時点で宣言したほうがスコープが小さくなり、多少はコードは読みやすくなったりミスが減ったりするかもしれません。それにも関わらず、長年のクセが抜けない人は少なくないようです。

noname#99579
noname#99579
回答No.1

こんにちわ。 自分はメソッドの冒頭で宣言をするほうが、個人的には書きやすく、読みやすいです。 ただ、それ以上に何かきっちりした理由が説明できないので、そういう人もいる程度の認識でご参考いただければと思います。 参考URLもご覧ください。 特に規定が無ければ、必ず冒頭で宣言をする必要は無いみたいですね。

関連するQ&A

専門家に質問してみよう