黑马程序员技术交流社区

标题: 从内部类中访问局部变量 [打印本页]

作者: 310415798    时间: 2015-5-6 08:26
标题: 从内部类中访问局部变量
为什么从内部类中访问局部变量,需要申明为最终类型?
作者: 突然世界晴    时间: 2015-5-6 08:46
是的啊,当然现在高版本的默认修饰final,但是建议自己输入
作者: 想要那片海    时间: 2015-5-6 08:48
本帖最后由 想要那片海 于 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 09:02
想要那片海 发表于 2015-5-6 08:48
是要访问外部类的局部变量吗?当内部类中的方法要访问该方法内的局部变量时,不需要有声明;当访问内部类的 ...

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

明白,但我想知道更深层的原因




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2