A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 310415798 初级黑马   /  2015-5-6 08:26  /  355 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么从内部类中访问局部变量,需要申明为最终类型?

4 个回复

倒序浏览
是的啊,当然现在高版本的默认修饰final,但是建议自己输入
回复 使用道具 举报
本帖最后由 想要那片海 于 2015-5-6 08:58 编辑

是要访问外部类的局部变量吗?当内部类中的方法要访问该方法内的局部变量时,不需要有声明;当访问内部类的成员变量时通过加this进行声明,this在这里就代表了在调用时的本类对象,而要调用外部类的成员变量时,就需要加类名再加this进行声明,最简单的讲:最先找到的是自己有的,在外部找就需要加上外层的标志,这是一道基础测试题,不知道我这么说你能看明白吗,我也是初学者
  1. class A
  2. {
  3.   int x=1;//外部类的成员变量
  4.   class B
  5.   {
  6.       int x=2;//内部类的成员变量
  7.       void func()
  8.       {
  9.              int x=3;//内部类的局部变量
  10.              System.out.println("内部类的局部变量"+x);
  11.              System.out.println("内部类的成员变量"+this.x);
  12.              System.out.println("外部类的成员变量"+A.this.x);
  13.          
  14.         }
  15.     }
  16. }
复制代码

回复 使用道具 举报
想要那片海 发表于 2015-5-6 08:48
是要访问外部类的局部变量吗?当内部类中的方法要访问该方法内的局部变量时,不需要有声明;当访问内部类的 ...

额。。好像我跑题了,其实就是能够符合逻辑的直接使用外部变量,而且保证使用的一直是那个变量,而不是被自定义赋值的
回复 使用道具 举报
想要那片海 发表于 2015-5-6 08:48
是要访问外部类的局部变量吗?当内部类中的方法要访问该方法内的局部变量时,不需要有声明;当访问内部类的 ...

明白,但我想知道更深层的原因
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马