0

私の質問は、JAVA にはポインターがないということですが、別のアクティビティを開始する必要がある場合は、次のようにします。

Intent in = new Intent(MyActivity.this, NewActivity.class);
startAcitivity(in);

だから私の質問は、データ型は何MyActivity.thisですか??

4

2 に答える 2

1

Java ではポインターは明示的に許可されていませんが、Java での参照 (オブジェクト) による受け渡しは、暗黙的にポインターの概念に基づいているものです。

あなたの場合、親クラスのコンテキストを子クラスに渡していますが、これは実際には参照の概念を渡しています。

お役に立てれば。

于 2013-01-12T13:56:45.773 に答える
1

ネストされていないクラスにいる場合、またはトップレベルのクラスにいる場合、書き込みは書き込みMyActivity.thisと同じです。this

次の例を参照してください。

public class TopLevel{

    public static void main(String[] args){
        new TopLevel().printClass();
    }

    public TopLevel(){
        new LowerLevel().printClass();
    }

    public void printClass(){
        System.out.println("Outer Class: ");
        // Will print something like "TopLevel.class"
        System.out.println(this.getClass());
    }

    public class LowerLevel{
        // This is a Nested-Class.

        public void printClass(){
            System.out.println("Nested Class: ");
            // Will print "TopLevel$LowerLevel.class"
            System.out.println(this.getClass());
            // Will print "TopLevel.class" again
            System.out.println(TopLevel.this.getClass());
        }
    }

}

ネストされたクラスでの一部の使用thisは、最上位クラスで使用する場合と同じインスタンスを参照しません。したがって、ネストされたクラスの外側のクラスの「コンテキスト」を取得するには、コンテキストを取得するクラスも指定しますthis

于 2013-01-12T11:23:24.323 に答える