3

次の Java コードに遭遇しましたが、それが何を意味するのかわかりません。クラスをインスタンス化した後、'{' にコードを記述できますか?

しかし、コードを実行しようとすると、出力に「Z is 10」が表示されません。Javaのこの機能に関連する詳細情報を入手できるリンクを教えてください。

class TestClass {
    int z;
    public TestClass(){
    z=10;
    }
    public int getZ(){
    return z;
    }
    public void setZ(int z){
    this.z=z;
    }
}

class A
{   
    public static void main (String[] args) throws java.lang.Exception
    {
    TestClass TC = new TestClass() {
            public void testprint() {
        System.out.println("Z is " + getZ());
        }
     };
    }
}
4

5 に答える 5

1

あなたのコードで

TestClass TC = new TestClass() {
            public void testprint() {
        System.out.println("Z is " + getZ());
        }
     };

これは Anonymous Inner Class と呼ばれるため、初期化のみを行います。TC.testprint();上記のコード スニペットの後に使用できます 。

注 - TC は問題ありません。ただし、Java 命名規則規則に従って、単純な文字を使用します。ここから詳細を読むことができます - http://www.iwombat.com/standards/JavaStyleGuide.html

于 2014-04-25T13:43:41.317 に答える
0

これを匿名クラスと呼びます。舞台裏で行うことは、特定のクラスを拡張するか、特定のインターフェースを実装するサブクラスを作成することです。匿名クラスの詳細については、http: //docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.htmlを参照してください。

于 2014-04-25T13:36:36.540 に答える