- - PR -
変数の宣言の場所について教えてください。
«前のページへ
1|2|3|4|5
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-27 14:23
はインスタンスイニシャライザではなくスタティックイニシャライザですね。 staticな場合はクラスロード時に実行されます。 | ||||||||
|
投稿日時: 2005-10-27 14:55
インスタンス初期化子は、実際のソースではほとんどお目にかかれないと思います。 インスタンスの初期化はご指摘の通り通常はコンストラクタで行うので、インスタンス初期化子 を使うとすると、コンストラクタが書けないクラス、つまり匿名内部クラスぐらいしか使い道 はないでしょう。 | ||||||||
|
投稿日時: 2005-10-27 17:06
インスタンスイニシャライザは、コンストラクタを使用できないような状況以外では余り意味が無いようですね。 匿名クラスのようにクラス名がないからコンストラクタが書けないような状況では、使ったような気もします。 そういう意味では、GUI向けの構文と言えるでしょう。(GUIはイベント実装のために匿名クラスをガンガン使いますから) 混乱させるようなことを言って申し訳ありません。 無理やりな例ですが、下のようなのがいわゆる匿名クラス、、、になるんでしょうか? なにぶん独学ばかりですので、間違っているかも。 public static void main(String[] args) { Thread _t = new Thread(){ ArrayList _al = null; { _al.append("a"); _al.append("b"); _al.append("c"); } run(){ try { Thread.sleep(2000); } catch(Exception _e) { } if(_al.contains("a")) { System.out.println("ok"); }else { System.out.println("no"); } } }; _t.start(); System.out.println("go"); } | ||||||||
|
投稿日時: 2005-10-28 22:56
inaです。
かなり前の書き込みに関するコメントですが....
{}をつけてまで、変数のロケールを明確に分ける必要があるってことは、{}内は、明確な責務を持ったロジックのブロックのはずですよね? であれば、{}内をprivateメソッドとして切り出すべきと思うんですが..... | ||||||||
|
投稿日時: 2005-10-31 12:27
ukさんのコメントに返信しておけば良かったですね。すみません。
ukさんのご指摘の通り、組み込み系や携帯では、このようなコーディングをすることがあります。
仰る通りです。 ただ、特別な環境(搭載できるアプリの容量に制限がある環境)では、メソッドを作ったときのオーバーヘッドが惜しいぐらい、容量を削りたい場合があります。 その場合、ロジックは一つのメソッドに押し込めます。 なので、このようなコーディングにせざるを得ないです。 うーん、このスレで何の前提もなくswitchでの{}の使い方を示すには不適切でしたね。。。気が回りませんでした。申し訳ないです。 |
«前のページへ
1|2|3|4|5