2017-07-02 8 views
3

値1を含むx変数にアクセスできるかどうかを尋ねる試験例がありますか?解決策は可能ですが、どのように正確に関心がありますか?クラススコープ外の変数にはアクセスできますが、親クラススコープ内にはどのようにアクセスできますか?

class A { 
    int x = 1; //this is what I need access to. 
    class B { 
     int x = 2; 
     void func(int x) {...} 
    } 
} 
+2

はなぜ試験これらの日は、常に多くの場合、貧しい人々の練習の指標であるエッジケースに集中しないこのような何かを行うことができ、外側のクラスAの変数xにアクセスするには? – Bathsheba

答えて

2
class A { 
    int x = 1; 

    class B { 
     int x = 2; 

     void func(int x) { 
      System.out.println(A.this.x); 
     } 
    } 
} 

使用例:

public class Main { 
    public static void main(String[] args) {   
     A a = new A(); 
     A.B b = a.new B(); 

     b.func(0); // Out is 1 
    } 
} 
1

は、親インスタンスにアクセスするには、子クラスは静的であってはなりませんParentClassName.this

のようにこのキーワードを使用

1

はい、変数xにはvaでアクセスできますlue 1.

ここで、Aは外部クラス、Bは非静的内部クラスです。

あなたは

class B { 
    int x = 2; 
    void func(int x) { 
     System.out.print(A.this.x +" and "+x); 
    } 
} 
関連する問題