看了thinking in java中的Inner Class ,一头雾水.......什么Inner Class中调用Out Class中的成员,究竟Inner Class机制的给OOP带来什么好处?

解决方案 »

  1.   

    java中的内部类和接口加在一起,可以解决常被C++程序员抱怨java中存在的一个问题——没有多继承。实际上,C++的多继承设计起来很复杂,而java通过内部类加上接口,可以很好的实现多继承的效果。
      

  2.   

    偶也是初学者:
    Inner class 必须要在out class 类中进行实例化,然后可以调用out class 的成员,
    其作用域仅为out class 内
    ///////////////////////////////////////////////////////
    不知道偶说的对不对!
      

  3.   

    看来我对接口理解的不通,呵呵,自己为自己加油!
    wscft(无欲则刚),我觉得你说的对!
    谢谢!
      

  4.   

    记不太清楚了,随便聊聊,错了请指正。
    class内部定义的类有四种
    1. static member class:
    在其他类中有identifier "static"的类,比如
    public class A
    {
        static class B
        {
        
        }
    }2. non-static member class
    同上面相反,没有identifier "static"的内部类定义
    public class A
    {
        class B
        {
       
        }
    }3. anonymous class
    这个的定义我也说不太清楚,好像就是在调用的时候临时定义的类,没有名字
    class A
    {
        public void func(
                        new B(){}
                        )
        {
        
        }
    }4. local class
    方法里面定义的class
    class A
    {
        public void func()
        {
            class B
            {        }
        }
    }除了第一种(因为是静态的),其余三种叫做inner class
    对我来说基本没有用过这种形势的类定义,感觉主要还是对类内部逻辑进行进一步抽象,提取合适的元素作为一个只适合自己使用的内部类
      

  5.   

    我也在看java刚好看完内部类和接口,nirvana_li(东成西就,芝兰境界) 、wscft(无欲则刚) 讲得很对
    内部类的实例化一般来讲依赖于外部类的实例对象
    比如:
    class outer
    {
        class inner
        {
           
        }
        public static void main(String [] arg )
        {
            //先实例化outer
            outer out_instance = new.outer();
            //使用outer的实例:out_instance实例化inner实例对象
            outer.inner in_instance  = out_instance.new inner();
            
        }
    }