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

关于内部类创建对象的问题?

//外部类HelloWorld
public class HelloWorld {
    
    // 内部类Inner,类Inner在类HelloWorld的内部
    public class Inner {
        
		// 内部类的方法
		public void show() {
			System.out.println("welcome to imooc!");
		}
	}
    
	public static void main(String[] args) {
        
        // 创建外部类对象
		HelloWorld hello = new HelloWorld();
        // 创建内部类对象
		Inner i = hello.new Inner();
        // 调用内部类对象的方法
		i.show();
	}
}

其中 

// 创建内部类对象
Inner i = hello.new Inner();

为什么要这样创建内部类的对象,

而:

Inner i=new Inner();

这样创建内部类的对象不可以吗

正在回答

3 回答

不可以

如果类理解起来吃力,可以想一下方法,你怎么使用一个类里面定义的方法?肯定是先new一个对象hello,然后再hello.xxx() 这样使用方法。你在定义一个内部类的时候,默认会生成此内部类的构造方法,如何使用此方法?跟普通方法一样。

以上

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

雪中_悍刀行 提问者

最后一句,没看太懂
2016-07-07 回复 有任何疑惑可以回复我~
#2

雪中_悍刀行 提问者

非常感谢!
2016-07-07 回复 有任何疑惑可以回复我~

内部类创建方法:

如果类B中有内部类C,则静态内部类可以直接创建对象new B.C();
如果内部类不是静态的,那就得这样
B b = new B();
B.C c = b.new C();(C c =b.new C();也行)

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

赞!!!

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

举报

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

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

进入课程

关于内部类创建对象的问题?

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