黑马程序员技术交流社区
标题:
静态内部类中的一个小疑问
[打印本页]
作者:
JXHIUUI
时间:
2015-8-15 09:32
标题:
静态内部类中的一个小疑问
本帖最后由 JXHIUUI 于 2015-8-15 09:43 编辑
class Outer
{
static int x = 3;
static class Inner
{
void function()
{
System.out.println("inner:"+x);
}
}
void method()
{
Inner in = new Inner();
in.function();
}
}
class InnerClassDemo
{
public static void main(String[] args)
{
new Outer.Inner().function();
}
}
复制代码
如果内部类function功能中调用x时加this,即this.x,编译就会出错。如果Outer.this.x同样也会编译出错。初学者,求大神来解答!!
作者:
Five_伍
时间:
2015-8-21 23:54
this。简单的理解为当前这个类,this.x指的是Inner中的变量x,但是Inner类中并没有x变量,所以报错。如果采用Outher.this.x,计算机并不会理解这指的是类Outher中的x,换成Outher.x就行了。
作者:
sunsteam
时间:
2015-8-22 00:31
static 修饰的变量是存在方法区里的静态内容 this.x是调用这个函数的对象的x 此x非彼x outer.this也一样
静态优先于对象存在 所以静态方法无法调用在它之后才出现的对象中的内容 只能调用和他同时出现的静态内容
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2