0

Javaの静的ネストクラスと内部クラスの違いを認識しています。私は内部クラスについて話している。「OuterClass.this」を使用して、内部クラスから外部クラスを取得できることも認識しています。

ディレクトリと同様に、ナビゲートには絶対と相対の 2 つの方法があります。例: "/aaa/bbb/ccc/ddd"、フォルダー "ccc" 内にいて "bbb" を参照したい場合、"cd /aaa/bbb" または "cd .." のいずれかを使用できます。

今度は Java 内部クラスに移ります。

class AAA{
    BBB b = new BBB();
    class BBB{
        CCC c = new CCC();
        //CCC c = new CCC(b);
        class CCC{
            //SECOND VERSION
            //BBB parent = null
            //CCC(BBB parent_){
            //    parent = parent_;
            //}
            DDD d = new DDD();
            BBB GetParent(){
                return AAA.this.b;    //I know this will work
                //or return parent; if using the SECOND VERSION
            }
            class DDD{
            }    
        }
    }
}

私は 2 つのバージョンを提供しました: AAA.this.b と、コンストラクターのパラメーターからの値が割り当てられたメンバー変数「親」を導入します。

私の質問: メンバー変数を導入しない場合、内部クラスから直接の親を取得する相対方法を使用できますか? (CDのように..)

4

2 に答える 2

2

を使用BBB.thisして、クラス BBB の外側のインスタンスを直接参照できます。

于 2013-05-03T05:48:25.733 に答える
0

通常、内部クラスのコードは外部クラスへの参照を必要としませんが、外部クラスのメンバーにアクセスするために使用する暗黙のコードが既にあるため、それを渡す必要がある場合は外部クラスへの参照が必要になります。他のコードへの参照。それが必要な場合は、最初のバージョンを使用してください。

于 2013-05-03T01:55:50.273 に答える