NRIロゴ2号
Google
 
Web narimatsu.net
トップページ
写真日記
リンク集

旧コンテンツ

News,( US, UK)
はてなアンテナ
wikipedia

kick4wiki
kick4bbs
ジャパンネット銀行
ピンポイント天気
postMap
G-Tools
Kumaduino

うだうだ日記Index
2011
1 2 3 4 5
2010
1 2 3 4 5 6 7 8 9 10 11 12
2009
1 2 3 4 5 6 7 8 9 10 11 12
2008
1 2 3 4 5 6 7 8 9 10 11 12
2007
1 2 3 4 5 6 7 8 9 10 11 12
2006
1 2 3 4 5 6 7 8 9 10 11 12
2005
1 2 3 4 5 6 7 8 9 10 11 12
2004
1 2 3 4 5 6 7 8 9 10 11 12
2003
1 2 3 4 5 6 7 8 9 10 11 12
2002
1 2 3 4 5 6 7 8 9 10 11 12
2001
1 2 3 4 5 6 7 8 9 10 11 12
2000
1 2 3 4 5 6 7 8 9 10 11 12

うだうだ日記 2007年 2月 7日


2007年2月7日 水曜日

無名インナークラス in Java

昨日Javaでわけがわからんと言っていたのは 無名インナークラスのオブジェクトだそうだ。 staticでないインナークラスは、 生成時の親(外側のクラス)のオブジェクトのポインタを持っていて、 親のメンバーにアクセスできるらしい。 さらに、問題の new MouseListener() { .. } というような式で生成されるのは、 無名(クラス名を持たない)の無名インナークラスのオブジェクトで、 newの次にくるのはクラス名かインターフェース名、 クラス名の場合はそのクラスを継承した無名クラス、 インターフェースの場合はObjectを継承し、 そのインターフェースを実装した無名クラスのオブジェクトが生成される。 普通のクラス宣言を使っても実現できる機能を、 コンパクトかつわかりやすく記述できる まさに シンタックス・シュガーというわけだ。

わかって、すっきり。 安心して 無名インナークラスを使おう。