【初心者】Java質問・相談スレッド116【歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0577デフォルトの名無しさん
2008/06/24(火) 21:00:01インタフェースの中にある以下のようなソースなんですが
public interface IntComparator{
public static final IntComparator
NATURAL_COMPARATOR = new IntComparator(){
public int compare(int i1, int i2){
return
i1 < i2 ? -1 :
i1 > i2 ? 1 :
0 ;
}
};
}
出典:ttp://mitv2.net/algorithm/sort1.html#IntComparator
1.「new コンストラクタ{メソッド名(引数){メソッド定義}}」という書式はこの他にも見かけたのですが、
これはこれから生成するインスタンスに含まれるメソッドを定義する構文という理解で正しいのでしょうか?また、その場合このメソッド定義はどのインスタンスに対して有効なのでしょうか?
(クラス定義と同じでこれ以降同じクラスから生成するインスタンス全てに有効?それともここで生成するインスタンスのみに有効?)
2.メソッドを定義する構文であるとすれば、抽象メソッドしか持たないはずのインタフェース内でメソッドを定義していることになります。
Eclipsにコピペしてみてもコンパイルエラーは発生しないようですが、本当にこのようなことが許容されるのでしょうか?
長文になってしまいましたが、よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています