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

请问创建内部类对象时,会重新执行初始化块吗?谢谢

正在回答

3 回答

创建外部类的对象时是不会创建内部类对象的,所以不会调用内部类的构造函数(初始化块),只有用外部类的对象创建内部类对象时才会调用内部类的初始化块。

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

执行结果:

HelloWorld初始化块!!!

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

亲~您可以自己试试,把创建内部类对象的语句删掉,再写个构造函数,然后再加上删掉的语句看会不会重复执行就可以了

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

不会的

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

举报

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

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

进入课程
意见反馈 帮助中心 APP下载
官方微信