2017-08-05 2 views
-4

内部クラスの内部で変数int a=89;のOuterクラスにアクセスするにはどうすればよいですか?私のコードをチェックしてください。これを解決するために私を助けてください。そこに隠されていた場合、ローカルの内部クラスの外部クラスメソッド変数にアクセスするにはどうすればいいですか?

public class TestOuter { 
    private String name = "Makky"; 
    int a = 1; 

    public void dis() { 
     System.out.println("dis"); 
     int a = 89; 
     class TestInner { 
      int a = 6; 

      void dis() { 
       int a = 12; 
       System.out.println("local inner class=" + a); 
       System.out.println("local inner class=" + this.a); 
      } 
     } 
     TestLocalInner ob = new TestLocalInner(); 
     ob.dis(); 
    } 

    private class TestInner { 
     int a = 2; 

     public void access() { 
      int a = 3; 
      System.out.println("a=" + a); 
      System.out.println("name=" + name); 
      System.out.println("a=" + this.a); 
      dis(); 
     } 
    } 

    public static void main(String[] args) { 
     TestOuter.TestInner inner = new TestOuter().new TestInner(); 
     inner.access(); 
     TestOuter outer = new TestOuter(); 
     System.out.println(outer.a); 
    } 
} 

ここで私はSystem.out.println(a);

+1

Hあなたは、内部クラスの変数を 'a'以外のものにしようとしましたか? –

+0

いいえ、同じ名前を使用するだけです –

+0

[こちら]をチェックしてください(https://stackoverflow.com/questions/33718123/how-a-class-inside-a-method-access-a-local-variable-of-その方法)アウト。 – BakaWaii

答えて

0

TestInnerメンバーのようなものDISメソッド内a=89の印刷値なしで私の内部クラスでdis()方法の変数int型a = 89にアクセスしたい:this.a
TestInner.disローカル変数:a
TestOuter会員:TestOuter.a

関連する問題