为了账号安全,请及时绑定邮箱和手机立即绑定

创建内部类对象为什么要先创建外部类对象

第18行:Inner i= hello.new Inner();  不太懂
1,创建内部类对象为什么要使用外部类对象?
2,如果有多个外部类对象,那创建内部类对象的时候是不是随便用一个外部类对象就可以了?


正在回答

5 回答

内部类可以随意访问外部类的所有属性和方法,外部类不可以直接访问内部类的属性和方法,这是规定

1 回复 有任何疑惑可以回复我~

静态方法无法访问非静态方法,给内部类加一个static就OK了

2 回复 有任何疑惑可以回复我~

//外部类HelloWorld

public class HelloWorld {

    

    // 内部类Inner,类Inner在类HelloWorld的内部

    public static class Inner {

        

// 内部类的方法

public void show() {

System.out.println("welcome to imooc!");

}

}

    

public static void main(String[] args) {

        

        // 创建内部类对象

Inner i = new Inner();

        // 调用内部类对象的方法

i.show();

}

}


0 回复 有任何疑惑可以回复我~
#1

抓住一只蝉

加一个static,就不需要创建外部对象
2019-05-08 回复 有任何疑惑可以回复我~
#2

qq_慕沐4213791 回复 抓住一只蝉

为什么静态类就能直接调用? 那如果外部类我也加个static也可以吗?
2019-07-13 回复 有任何疑惑可以回复我~

静态方法无法访问非静态成员变量(你可以吧Inner()看成一个成员变量)

0 回复 有任何疑惑可以回复我~
  1. 内部类中静态内部类不需要使用外部类对象就可以直接创建。你给出的例子应该是成员内部类的创建。我个人把成员内部类理解为一个特殊的成员变量,你要使用成员内部类时就需要 对象.(成员内部类)。

  2. 不随便啊,建议你看下成员内部类那一节课程

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530628    人
  • 解答问题       6091    个

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

进入课程

创建内部类对象为什么要先创建外部类对象

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信