貌似没什么用啊,真的要用的话另外再写个类不就行了,为什么要存在内部类呢?

解决方案 »

  1.   


    class Outer
    {
    private int size; class Inner
    {
    void doStuff()
    {
    size++;
    System.out.println("The size value of the Outer class:" + size);
    }
    }
    }public class TestInner
    {
    public static void main(String[] args)
    {
    Outer out = new Outer();
    Outer.Inner in = out.new Inner();
    in.doStuff();
    }
    }就像这种类型的内部类,感觉另外写个类不是更好吗,这样写多难理解啊
      

  2.   

    楼主的例子是 非静态内部类。 呵呵,内部类,顾名思义 内部的类。在我看来其实内部类一般情况下,只会被 他的外部类利用,结合使用。有时候为了封装,不想让外部看见他的实际状态,就比如 Iterator(接口),而实现 Iterable 接口的类,则会提供 Iterator 的实现,但只有提供者知道他实际是什么类型,因为 Iterator  的实现,是提供者的 内部类(通常都不是 pulbic 的)。还有一个好处,可以方便的共享外部类的变量。
      

  3.   

    兄弟,写过swing过,那里面常用内部类,当然也不是必需的,只是比较方便。
      

  4.   

    顶7楼的,swing 和 awt 中用内部类很方便
      

  5.   

    对于Outer-Inner这个例子。首先如果Inner独立定义,那么Inner就不能访问变量size
    还有更重要的在于封装性:如果Outer在处理复杂逻辑的时候需要一个这样的一个辅助类,而且这个辅助类没必要也不应该让其他地方访问它,这个时候就可以用内部类。譬如你把那个Inner声明为private class,那么外面没法访问。这种效果普通类做不到。