class Outer
{
int outer_x=100;
void test()
{
  InnerClassDemo  obj=new InnerClassDemo();

  InnerClassDemo.Inner inner= obj.new Inner();
inner.display();

}
void showy()
{   InnerClassDemo  obj=new InnerClassDemo();
InnerClassDemo.Inner inner1=obj.new Inner();
System.out.println("y="+inner1.y);
}
}
class InnerClassDemo
{
class Inner
   {
int y=10;
void display()
{
System.out.println("display:outer_x="+new outer().outer_x);//这里有错误,这里能否调用outer_x,如果能要怎么改呢?
}
   }
public static void main(String args[])
   {
    Outer outer=new Outer();
    outer.test();
    outer.showy();
   }}

解决方案 »

  1.   

    你的意图没有问题,是可行的,注意构造方法:Outer()开头字母要大写,就行了,
    本来这两个类都在一个包空间中,是可以互相访问的
      

  2.   

    System.out.println("display:outer_x="+new outer().outer_x);//这里有错误,这里能否调用outer_x,如果能要怎么改呢?
    大哥,首先你的new outer()错了,应该是new Outer()
    然后这行最后的;改成英文半角的;