这是关于内部类的一个代码
class Outer
{
int outer_i=100;
   void test()
{
Inner in =new Inner();
in.display();
}
class Inner
{
void display()
{
System.out.println("outer_i= "+outer_i);
}
}

public static void main(String [] args)
{
Outer outer=new Outer();
outer.test();
}
}简单说  就是说类Inner 是 Outer 的一个内部类。现在要把这个内部类该写在外边,成为两个独立的累。实现两个类之间的调用 
代码如下class Outer
{
int outer_i=100;
   void test()
{
Inner in =new Inner(this);
in.display();
}

public static void main(String [] args)
{
Outer outer=new Outer();
outer.test();
}
}
class Inner{
Outer outer;
public Inner(Outer outer)
{
this.outer=outer;
}
void display()
{
System.out.println("outer_i= "+outer.outer_i);
}
}
这这段代码中,Inner类中的第一行Outer outer;是什么意思呢?想不明白。还有最后一行中System.out.println("outer_i= "+outer.outer_i);为啥又是outer.outer_i呢?请高人为在下指点迷津啊。本人为自学java如果高人觉得问题简单了 请勿见笑

解决方案 »

  1.   

    class Outer
    {
    int outer_i=100;
      void test()
    {
    Inner in =new Inner();
    in.display();
    }
    class Inner
    {
    void display()
    {
    System.out.println("outer_i= "+Outer.this.outer_i);
    }
    }public static void main(String [] args)
    {
    Outer outer=new Outer();
    outer.test();
    }
    }在内部类中也是调用Outer的一个对象 和外面的道理是一样的只不过在内部类的时候 可以直接访问到Outer.this 而在外部类的时候只能将 Outer对象作为一个参数传递给Innner 这样才可以使用outer_i
      

  2.   

    Outer outer;// 这是Inner类的一个成员变量,保存一个Outer对象的引用
    System.out.println("outer_i" + outer.outer_i);//这个当然是outer_i了,要么lz想打印什么?