HelloWorld o = new HelloWorld (); Inner inn = o.new Inner(); ;和 Inner inn =new Inner (); 怎么理解啊

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

qq_慕设计9453278

2019-03-09 20:07

   求大神 帮助



写回答 关注

2回答

  • 慕数据9192110
    2019-03-09 20:33:47
    已采纳

    HelloWorld o = new HelloWorld ()指的是创建了一个HelloWorld类的对象o;

    Inner inn = o.new Inner()指的是Inner是HelloWolrd里的一个内部类,创建一个内部类Inner的对象inn必须先创建一个外部类的对象o,用o来创建内部类对象inn;

    Inner inn =new Inner ()只能在内部类HelloWorld中使用创建inn


  • 爱学习的林同学
    2019-03-09 20:33:55

    首先第一句话,意思是new一个对象,将HelloWorld这个对象的地址保存在o这个变量里,我们知道HelloWorld是外部类的名字,所以这句话作用是让你后面可以通过o来调用o里的东西,也即外部类里的东西。

    第二句话也是同理,o.new  Inner(); 通过o给的地址在外部类里找到内部类,然后就找到了内部类的地址,然后用等于号赋值,Inner inn =o.new Inner();    把内部类的地址保存到了inn这个变量里,你后面可以通过inn来调用inn里的东西,也即调用内部类里的东西。

    第三句话,它仅仅是创建一个内部类对象,原来保存的变量名字为inn,跟的一句话的意思差不多。(但是第二句话在实现第三句话的功能的同时还把地址保存进了inn里)

    【不知道我理解的对不对,我是根据数据的保存的三个地点来理解的,方法区、堆和栈】

Java入门第二季 升级版

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

530554 学习 · 6091 问题

查看课程

相似问题