こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

変数の宣言箇所

javaの変数の宣言箇所についてご意見をお聞かせください。

javaでメソッドの先頭で変数を纏めて宣言しているのを良く見かけますが、これは何故でしょうか。

自分は変数を使う時に一緒に宣言する方が見やすいと思いますし、ifやfor文の中で変数を宣言すると抜けたときに開放されると思います。

見やすさ、効率等を考えても、変数を使用する時に一緒にする方がよい
と思いますが、如何でしょうか。

C言語とかの習性でしょうか。
ご意見、宜しくお願いします。

投稿日時 - 2007-11-14 17:19:39

QNo.3517714

暇なときに回答ください

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

1#です。

URL張り忘れました、面目ないですm(__)m

ご参照ください。

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

投稿日時 - 2007-11-14 17:43:03

お礼

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

投稿日時 - 2008-08-12 21:07:05

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

過去の回答者の方と同じくC言語とかの習性だと思います。
変数のスコープという考え方が曖昧なので。

ただ、Javaでは変数のスコープは意識したほうがよく、そのスコープは極力最小になるように心がけるべきだと思います。

理由としては、ムダに広いスコープで変数をもつと、いつまでたっても変数が開放されずGCの対象にならない、というのと、何より、バグの原因になるからです。

投稿日時 - 2007-11-16 06:22:55

ANo.5

#4の補足です。

> C言語とかの習性でしょうか。

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

投稿日時 - 2007-11-15 17:14:26

ANo.4

 public static void main(String[] args)
 {
  int i = 0;
  {
   int i = 1;
   for (i=2; i<10; i++)
   {
    int i = 999;
   }
  }
 }

Javaだと上記のような宣言がことごとくエラーになります。
#C++だとエラーになりません。
なので後からコードを弄ったときにエラーが出て余計な手間が掛かることがしばしばあり、
それをあらかじめ防ぐ意味でメソッドの先頭で宣言するようにしています。

投稿日時 - 2007-11-15 17:06:26

ANo.3

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

投稿日時 - 2007-11-15 02:30:48

ANo.1

こんにちわ。

自分はメソッドの冒頭で宣言をするほうが、個人的には書きやすく、読みやすいです。

ただ、それ以上に何かきっちりした理由が説明できないので、そういう人もいる程度の認識でご参考いただければと思います。

参考URLもご覧ください。
特に規定が無ければ、必ず冒頭で宣言をする必要は無いみたいですね。

投稿日時 - 2007-11-14 17:39:19

あなたにオススメの質問