lingcoder/OnJava8

第十一章 内部类

T2planet opened this issue · 2 comments

问题:

第一小节 创建内部类 的最后一段话

如果想从 外部类的非静态方法之外的任意位置 创建某个内部类的对象,那么必须像在 main() 方法中那样,具体地指明这个对象的类型:OuterClassName.InnerClassName。(译者注:在 外部类的静态方法中 也可以直接指明类型 InnerClassName,在其他类中需要指明 OuterClassName.InnerClassName。)

外部类的非静态方法之外的任意位置” 和 “外部类的静态方法中 ” 这两句的描述是否有误?因为外部类的非静态方法中创建内部类对象也可以直接指明类型 InnerClassName

    public void ship(String dest) {
        Contents c = contents();
        Destination d = to(dest);
        System.out.println(d.readLabel());
    }

比如外部类的这个ship方法中,创建的内部类对象直接指明类型而不需要 OuterClassName.InnerClassName。

所以这里描述是否有误或者说是漏了?

image
image

这句话的意思是外部类的非静态方法可以不用指明 「OuterClassName.InnerClassName」
所以没有错,是你理解错了

image
image

这句话的意思是外部类的非静态方法可以不用指明 「OuterClassName.InnerClassName」
所以没有错,是你理解错了

这下看懂了,感谢回复