构造代码块和静态代码块

构造代码块

 //构造代码块
   /* {
        System.out.println("构造代码块1");
    }*/

    //作用:抽取所有构造方法的相同代码到构造代码块中,目的是简化代码,提高代码的复用性(不需要在所有构造方法中去重复写)
    {
        System.out.println(new Date());
    }

静态代码块

//静态代码块
    /*
        执行时机:类被加载,静态代码块就会执行,只会执行一次
     */
     static {
        System.out.println("静态代码块1");
    }
Java中,代码块分为三种类型:静态代码块构造代码块(也叫初始化块),以及实例方法中的代码块。 1. **静态代码块**:这是一个在类加载时就被执行的代码段,不需要创建类的对象就可以运行。你可以通过`static {...}`关键字声明一个静态代码块。由于是在类加载阶段执行,所以它会在main方法开始前执行。 ```java public class MyClass { static { System.out.println("静态代码块执行了"); // 这里的代码将在类初次加载时一次性执行 } } ``` 2. **构造代码块构造函数中的代码块)**:每个类都有默认构造器,如果没有显式定义,那么就会有一个无参的构造器。构造代码块是跟随构造函数一起执行的,通常用于设置一些初始状态。如果有参构造器,则其代码块会在每次新创建该类的对象时执行。 ```java public class Student { String name; { // 构造代码块 System.out.println("构造代码块执行了"); this.name = "学生好好学习"; // 初始化对象属性 } public Student(String name) { this.name = name; // 有参构造方法 System.out.println("有参构造方法执行了"); } } ``` 当你在`main()`方法中创建`Student`对象时,会按照上述顺序执行: ```java public static void main(String[] args) { Student student = new Student("张三"); // 引发构造函数执行 } ``` 这将导致的输出顺序是: ``` 静态代码块执行了 构造代码块执行了 有参构造方法执行了 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值