class Outer
{
int outer_x=100;
void test()
{
for(int i=0;i<10;i++)
{
class Inner
{
void display()
{
System.out.println("display:outer_x"+outer_x);
}
}
}
Inner inner=new Inner();//cannot resolve symbol class Inner
inner.display();
}
}
class InnerClassDemo
{
public static void main(String []args)
{
Outer outer=new Outer();
outer.test();
}
}这样运行出现错误:cannot resolve symbol class Inner然后把 Inner inner=new Inner();
inner.display();
放到for循环内,就没这个错误了:
class Outer
{
int outer_x=100;
void test()
{
for(int i=0;i<10;i++)
{
class Inner
{
void display()
{
System.out.println("display:outer_x"+outer_x);
}
}
Inner inner=new Inner();
inner.display();
}
}
}
class InnerClassDemo
{
public static void main(String []args)
{
Outer outer=new Outer();
outer.test();
}
}这是为什么呢???
{
int outer_x=100;
void test()
{
for(int i=0;i<10;i++)
{
class Inner
{
void display()
{
System.out.println("display:outer_x"+outer_x);
}
}
}
Inner inner=new Inner();//cannot resolve symbol class Inner
inner.display();
}
}
class InnerClassDemo
{
public static void main(String []args)
{
Outer outer=new Outer();
outer.test();
}
}这样运行出现错误:cannot resolve symbol class Inner然后把 Inner inner=new Inner();
inner.display();
放到for循环内,就没这个错误了:
class Outer
{
int outer_x=100;
void test()
{
for(int i=0;i<10;i++)
{
class Inner
{
void display()
{
System.out.println("display:outer_x"+outer_x);
}
}
Inner inner=new Inner();
inner.display();
}
}
}
class InnerClassDemo
{
public static void main(String []args)
{
Outer outer=new Outer();
outer.test();
}
}这是为什么呢???
{
void display()
{
System.out.println("display:outer_x"+outer_x);
}为什么把Inner定义在For循环体内部呢?
你可以将class Inner当成一个局部变量, 就像是int temp;那样子
当出了循环体之后,你怎么去访问temp呢??