问答详情
源自:7-5 什么是 Java 中的内部类

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

//外部类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();

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

提问者:雪中_悍刀行 2016-07-06 22:45

个回答

  • 钢印
    2016-07-06 23:34:55
    已采纳

    不可以

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

    以上

  • 慕粉3766417
    2016-08-03 22:48:03

    内部类创建方法:

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

  • 慕粉3685042
    2016-07-20 13:48:00

    赞!!!