构造代码块 和 构造方法 执行顺序

本文深入解析构造代码块在类中的作用及执行时机,探讨其与构造方法的关系,通过实例演示构造代码块如何在创建对象时执行,以及它与不同构造方法之间的执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构造代码块:定义在类的成员位置,直接使用{ },在{}中写代码内容。

位置:类中,方法外,和方法并列,和先后位置无关。

执行时机:创建对象的时候执行一次。在构造方法隐式3步的最后一步。当构造代码块执行结束之后,开始执行构造方法本身的代码内容

格式:

public class ClassName{
  // 构造代码块
  {
    // 执行语句 
  }
}

构造代码块和构造方法执行顺序:


class ConsCode{
    // 成员变量
    int a;
    int b;

    // 空参构造
    public ConsCode() {
        //System.out.println("HelloWorld!");
      	System.out.println("11我在构造代码块执行结束之后执行...");
    }

    // 给变量a赋值的构造
    public ConsCode(int a) {
        this.a = a;
      	System.out.println("22我在构造代码块执行结束之后执行...");
        //System.out.println("HelloWorld!");
    }

    // 给变量ab同时赋值的构造
    public ConsCode(int a , int b) {
        this.a = a;
        this.b = b;
        //System.out.println("HelloWorld!");
      	System.out.println("33我在构造代码块执行结束之后执行...");
    }

    // 构造代码块
    {
        System.out.println("构造代码块!。。。。。。。。。。。。。。。");
    }
}
public class ConstructorCodeDemo {
    public static void main(String[] args) {
        // 分别使用3个构造方法创建对象,并运行程序,显示执行3遍HelloWorld!
        ConsCode c1 = new ConsCode();
        ConsCode c2 = new ConsCode(10);
        ConsCode c3 = new ConsCode(10,20);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值