}
class Outer
{
int x = 3;
public void function()
{
AbsDemo d =new AbsDemo()
{
int x = 9;
void show()
{
System.out.println("x==="+this.x);
}
void abc()
{
System.out.println("hhee”);
}
};
d.show();
//d.abc();
}
}
class Test
{
public static void main(String[] args)
{
new Outer().function();
}
}
作者: 黑马振鹏 时间: 2012-8-3 12:01
abstract class AbsDemo
{
abstract void show();
}
class Outer
{
int x = 3;
public void function()
{
//父类引用 创建匿名内部类对象
AbsDemo d =new AbsDemo()
{
int x = 9;
void show()
{
int x = 11;
System.out.println("x1== "+x); //x1== 11
System.out.println("x2== "+this.x);//x2== 9
System.out.println("x3== "+Outer.this.x);//int x = 3; }
void abc()
{
System.out.println("hhee");
}
};
d.show();
//调用abc(),是子类中特有的方法,只能用子类对象去调用。
new AbsDemo()
{
int x = 9;
void show()
{
int x = 11;
System.out.println("x1== "+x); //x1== 11
System.out.println("x2== "+this.x);//x2== 9
System.out.println("x3== "+Outer.this.x);//int x = 3;
}
void abc()
{
System.out.println("hhee");
}
}.abc();
}
}
class Test
{
public static void main(String[] args)
{
new Outer().function();
}
} 作者: 郑小杰 时间: 2012-8-3 12:12
//问题1:为什么输出结果是是9,而不是3啊?
//问题2:我向调用abc()的方法,在主函数中我应该怎么写啊,或者在Outer类中我该怎么写?
new AbsDemo()
{
int x = 9;