在外部类的方法中为什么我可以直接创建内部对象??

来源:7-6 Java 中的成员内部类

一luckydog一

2016-11-20 13:49

http://img.mukewang.com/5831385c00019b8313400846.jpg

为什么public void outer_2(){}这个方法里我直接就创建了一个内部类的对象   Inner inner=new Inner();不是说内部类的对象要先通过先创建外部类对象然后通过外部类对象.new Inner()的形式创建吗??


写回答 关注

3回答

  • 七塔
    2016-11-20 14:49:29
    已采纳

    这个你首先要清楚内部类与外部类的关系,

    必须先有外部类的对象才能生成内部类的对象,因为内部类的作用就是为了访问外部类中的成员变量

    在其他地方需先创建外部类对象的原因是:通过外部类对象传递一个外部类的引用给将要创建的内部类,然后通过外部类对象.new Inner()的形式创建,但是在包含本内部类的外部类的方法中,引用本就包含在类中,因此可以直接创建内部类对象,其实new Inner()在外部类的方法中相当于this.new Inner()


    一lucky...

    。。看懂了,谢谢

    2016-11-20 22:13:53

    共 1 条回复 >

  • 七塔
    2016-11-20 15:01:17

    简单举个例,不拿内部类来说,对于方法调用

    583149af0001f83505000418.jpg

    583149af0001638505000404.jpg

    的作用是一样的,从某种意义上来说,this等价于本类的对象。

    (本人新手,有不对的的地方欢迎指正)

  • 胡小明小朋友
    2016-11-20 14:33:54

    我觉得是外部类和内部类不同名  不过应该不是这个

    奶比慕丝34... 回复一lucky...

    还是没有看懂咋,创建对象不是只能在测试类中创建吗,为什么直接在外部类的方法中创建了内部类的对象啊,而且有什么用啊

    2023-05-18 21:47:37

    共 6 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530554 学习 · 6091 问题

查看课程

相似问题