加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 访问本地类中的shadowed变量

发布时间:2020-12-15 04:22:01 所属栏目:Java 来源:网络整理
导读:我是 java的新手,我在下面的例子中感到困惑 public class Test { int testOne(){ //member method int x=5; class inTest // local class in member method { void inTestOne(int x){ System.out.print("x is "+x); // System.out.print("this.x is "+this.x
我是 java的新手,我在下面的例子中感到困惑

public class Test {

   int testOne(){  //member method
       int x=5;
         class inTest  // local class in member method
           {
             void inTestOne(int x){
             System.out.print("x is "+x);
         //  System.out.print("this.x is "+this.x);
           }
  }
       inTest ins=new inTest(); // create an instance of inTest local class (inner class)
       ins.inTestOne(10);
       return 0;
   }
    public static void main(String[] args) {
   Test obj = new Test();
   obj.testOne();
}
}

为什么我无法使用第8行中的“this”关键字访问inTestOne()方法中的shadowed变量

解决方法

why i can’t access to shadowed variable in inTestOne() method with “this” keyword in line 8

因为x不是该类的成员变量;它是一个局部变量.关键字this可用于访问类的成员字段,而不是本地变量.

变量被遮蔽后,您无权访问它.这没关系,因为变量和本地内部类都是你自己要改变的;如果你想访问阴影变量,你需要做的就是重命名它(或重命名阴影它的变量,无论什么对你更有意义).

注意:不要忘记将局部变量标记为final,否则即使没有阴影,也无法访问它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读