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

来源:7-5 什么是 Java 中的内部类

雪中_悍刀行

2016-07-06 22:45

//外部类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回答

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

    不可以

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

    以上

    雪中_悍刀行

    非常感谢!

    2016-07-07 18:33:25

    共 2 条回复 >

  • 慕粉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

    赞!!!

Java入门第二季 升级版

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

530643 学习 · 6091 问题

查看课程

相似问题