我现在正在学JAVA请问各位大侠,如果在外部类的方法中定义的内部类如何在其它类中实例化

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/4337/4337439.xml?temp=.5032007
      

  2.   

    class Class1
    {
    class Class2
    {
    }
    }Class1.Class2 xx = new Class1.Class2Class2不能是静态和局部的
      

  3.   

    谢谢!可如果是以下呢?
    class class1
    {
         public void d1()
         {
               class  class2
               {
                }
         }}
    class class3
    {}
    哪么如上面的代吗,在class3中如何实例化class2呢?
      

  4.   

    class outter
    {
    private int size;
    class inner
    {
    public void dostuff()
    {
    System.out.println(size++);
    }
    }
    }
    class testoutter
    {
    public static void main(String[] args) throws Exception
    {
    outter out=new outter();
    outter.inner in=out.new inner();
    in.dostuff();
    }
    }
    就象这样实例化内部类
      

  5.   

    刚写的一个例子,再搬到这里来复用哈;作为chentao0377(陈涛)的补充。
    package p1;
    import java.io.*;
    import java.util.*;
    class B{
    public void print()
    {
    System.out.println("in class  B absolutely");
    }
    }
    class B1{
    public void print()
    {
    System.out.println("in class  B1 absolutely");
    }
    }
    class InnerTest {
    class B
    {//此内部类与外部类重名了
    void print()
    {      
    System.out.println("in class B of InnerTest");
    }
    }
    public void printB(){new B().print();}   //正常用法 public static void main(String[] args) {
    InnerTest it=new InnerTest();
    B b=it.new B();   //注意看这两个类B的区别
    B bb=new p1.B();
    B1 b1=new B1();   //这个是正常的类 it.printB();
    b.print();
           bb.print();
    b1.print();
    }}
      

  6.   

    晕,代码倒数第六行B bb=new p1.B();应该是p1.B bb=new p1.B();