- - PR -
変数の宣言の場所について教えてください。
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-25 18:09
その投稿が消えてしまってますが、メソッド内で定義されているものでしょう。
という感じでしょう。(多分) また、ローカル変数だけでなくブロック変数もなるべく使ってあげてください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-10-25 18:26
じゃんぬねっと様
ありがとうございます。 なるほどっ、二つの変数を入れ替えるという処理だったのですね。 ブロック変数というのは初めて耳にしました・・・ Javaの入門書には載っていませんでしまた>< いつも参考にさせていただいているJavaの道様とJavaでHelloWold様 のサイトでもみつけられませんでした。。 http://www.javaroad.jp/index.htm http://www.hellohiro.com/ ブロック変数というのはどのような変数なのでしょうか?? ローカル変数と使いわけると読みやすいコードが書けるものなの でしょうか? [ メッセージ編集済み 編集者: S_Tatsu 編集日時 2005-10-25 18:26 ] | ||||||||
|
投稿日時: 2005-10-25 18:33
ブロック変数の例
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-10-25 18:42
じゃんぬねっと様
わかりやすい例をありがとうございます。 今までなにげなく書いていたfor(int i = 0; i<= 10; i++) のiはブロック変数という風に呼ばれるとは全然知らなかった です。 iをfor{}の外で使おうとするとエラーになりました。 ブロック変数というのが一番小さなスコープになるのですね。 | ||||||||
|
投稿日時: 2005-10-25 20:16
ブロックというのは、簡単に言えば { } の間ということです。
「{ }の中でだけ有効」という意味では、forやifに限らずメソッドでもクラスでも同じなのが分かると思います。 (全部同じという意味ではないです、念のため) 宣言する場所は、「用途」で決めましょう。 (慣れてくると、「見やすさ」と「用途」は、ほぼイコールになると思います) | ||||||||
|
投稿日時: 2005-10-25 20:37
なので、極端な例をあげるとこんなこともできます。
hItem という名前の変数は複数回使われてますが、どれも別物です。 # これは、Java、C# などで有効だったハズです。 # 最近、Java 触ってないので、少し忘れてます...w _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-10-25 20:50
メソッドの内での変数宣言とメソッドの外での変数宣言では、
目的も性格も全く違い、スコープ云々の話ではありません。 メソッドの外の変数はフィールドと呼ばれ、 インスタンスやクラスの状態を保持する目的で使用されます。 メソッドの中の変数はローカル変数と呼ばれます。 ところで、ブロック変数という名称は不適切ではないでしょうか。 Java言語規定の日本語版にも出てこない名前です。 (言わんとすることはよくわかりますよ) ちなみに、スコープはifやforに関係なく、{}によって決まります。 以下のようなメソッドでは、コンパイルエラーになります。
追記:サンプルソースがじゃんぬさんと被ったかも・・・ [ メッセージ編集済み 編集者: かつのり 編集日時 2005-10-25 20:53 ] | ||||||||
|
投稿日時: 2005-10-25 20:59
ども。
チェックボックスを間違えた・・・ さらに修正
まあ、既に話が終わっていそうなんで余計な書き込みかな? あと、変数宣言の件は、正直な話、JAVA言語の本を読めばきちんと書いてあるとはずですので、 そちらを確認したほうがいいかな?という気はします。 _________________ #「やらない」と「出来ない」を混同してはならない |