黑马程序员技术交流社区
标题:
碰到一个有意思的问题,求解
[打印本页]
作者:
帅哥哥
时间:
2014-5-23 15:24
标题:
碰到一个有意思的问题,求解
本帖最后由 帅哥哥 于 2014-5-24 11:39 编辑
上代码:
class Outer
{
String s = "1";
void func_3()
{
final String s = "2";
class Inner_3
{
String s = "3";
void func_2()
{
String s = "4";
System.out.println(/*这里想访问final类型的那个s = "2",怎么办*/);
}
}
}
}
复制代码
作者:
谢振宣
时间:
2014-5-23 16:40
class Outer
{
String s = "1";
void func_3()
{
final String s = "2";
final String sf = "2";
class Inner_3
{
String s = "3";
void func_2()
{
String s = "4";
/*这里想访问final类型的那个s = "2",怎么办*/
System.out.println("Outer.this.s = "+Outer.this.s);
System.out.println("this.s = "+this.s);
System.out.println("s = "+s);
System.out.println("sf = "+sf);
}
}
new Inner_3().func_2();
}
}
class Demo
{
public static void main(String[] args)
{
new Outer().func_3();
}
}
/*以下是执行结果,每一个引用都有自己所对应的变量,若想访问s = "2"就只能更换变量的名字了
*Outer.this.s = 1
*this.s = 3
*s = 4
*sf = 2
*/
复制代码
作者:
帅哥哥
时间:
2014-5-23 16:51
本帖最后由 帅哥哥 于 2014-5-23 16:54 编辑
谢振宣 发表于 2014-5-23 16:40
不能修改源代码,发了这帖子之后我就后悔了,我好像想到了一个很简单的方法,还没试,等试试能的话再发出来~~~
哎呀,居然不对。。。。。
作者:
假Rǔ有⒈兲
时间:
2014-5-23 17:07
看不懂啊
作者:
帅哥哥
时间:
2014-5-23 17:33
假Rǔ有⒈兲 发表于 2014-5-23 17:07
看不懂啊
就是定义了四个同名变量
一个在外部类成员位置上
一个在外部类成员函数内
一个在局部内部类成员位置上
一个在局部内部类成员函数内
问在局部内部类成员函数中怎么访问外部类成员函数中的局部变量
第一个,Outer.this可以访问
第二个,不知道
第三个,this可以访问
第四个,直接就可以访问
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2