Inner内部类,OuterClassName.InnerClassName

public class OuterDemo02 {

    /**
     * 内部类
     *
     */
    class InnerDemo02{


    }

    public InnerDemo02 createInner() {
        return new InnerDemo02();
    }

    public static void main(String args[]) {
        OuterDemo02 outer = new OuterDemo02();
        InnerDemo02 inner = outer.new InnerDemo02();

        OuterDemo02.InnerDemo02 inner2 = outer.new InnerDemo02();

        outer.createInner();
    }

}

InnerDemo02 inner = outer.new InnerDemo02();

OuterDemo02.InnerDemo02 inner2 = outer.new InnerDemo02()
的区别在哪里,java编程思想有句话“如果想从外部类的非静态方法之外的任意位置创建某个内部类的对象,那么必须具体指明这个对象的类型:OuterClassName.InnerClassName”。这句话要怎么理解?

http://blog.sina.com.cn/s/blog_c0b117790102vbz9.html

公开的内部类就相当于公开类,比如一个公开类A有一个公开的内部类B,对于编译器来说他有两个单独的公开类,虽然这个类B是放在类A里,但是你可以把它当成与类A同等级的

内部类是在外部类中定义的,所以可以说内部类是外部类的一部分,像你说的OuterDemo02.InnerDemo02与 InnerDemo02可以等同起来。我是这样理解的,如果有什么问题的,请指出。

https://www.jianshu.com/p/18d4603648cd 请查考

https://www.jianshu.com/p/63e1d6680c88