-3

これがファクトリー「インナークラス?」Java Jung グラフ パッケージから:

   Factory<Graph<String, Integer>> graphFactory = new Factory<Graph<String, Integer>>()
   {
       public Graph<String, Integer> create()
       {
           return new SparseMultigraph<String, Integer>();
       }
   };

私が知りたいのは、上記のプログラミング言語の概念は何ですか? 特にJavaのこの概念は何ですか? 上記は内部クラスですか?それは明らかに方法ではありません。Factory オブジェクトを構築し、グラフを作成するメソッドの最後にセミコロンが付いた中かっこがあるため、私には奇妙に思えます。

4

4 に答える 4

4

これは匿名の内部クラスです。上記のコードは、クラスのサブクラスFactory(またはインターフェイスを実装するクラスFactory) を作成し、そのメソッドをオーバーライドしcreate()、そのコンストラクターを呼び出し、結果をgraphFactory変数に代入します。

于 2012-12-29T17:45:49.440 に答える
3

これは匿名の内部クラスの概念です。素人の用語では、名前のないクラスと呼ぶこともできます。継承に対するそのようなクラスの使用については常に議論があります。通常、子クラスの1回限りの使用要件がある場合は、匿名クラスは、継承されたクラスよりも便利です。

于 2012-12-29T17:54:35.263 に答える
3

これは匿名の内部クラスです。

于 2012-12-29T17:44:13.983 に答える
0

投稿によると、あなたが話しているのはJavaの匿名クラスの概念であることを認識しているようです。これについて質問しているので、答えは、名前が意味するように、クラスに名前がないため、1 つのステップでクラス宣言を行うことで、クラスのインスタンスの作成が完了するということです。このため、匿名クラスを使用すると、.java ファイルを作成する時間と労力を節約できます。:) 原則として、匿名クラスは、スーパー クラスまたはインターフェイスにすべての抽象メソッドを実装する必要があり、スーパー クラスのすべてのデフォルト コンストラクタを使用する必要があります。

于 2012-12-29T18:41:24.883 に答える