Java代码块构造代码块和静态代码块(考试) 作者 吕行军 单位 河北农业大学 本题main()方法执行完毕后,要求打印内容及顺序如下: 10 静态代码块执行了 构造代码块执行了 学生好好学习 学生好好学习 有参构造方法执行了
时间: 2024-12-02 12:16:14 浏览: 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("张三"); // 引发构造函数执行
}
```
这将导致的输出顺序是:
```
静态代码块执行了
构造代码块执行了
有参构造方法执行了
```
阅读全文