1. 程式人生 > >構造函數順序

構造函數順序

this pri code 代碼 out 構造代碼塊 bsp java font

java類加載後執行順序:

靜態代碼塊 > 構造函數代碼塊 > 構造函數

而靜態代碼塊只執行一次,構造函數代碼塊和構造函數會隨對象new的次數變化

例子:

package com.test;

public class Student {
    private String name;
    private int age;

    // 靜態代碼塊
    static {
        System.out.println("靜態代碼塊...");
    }

    // 構造函數代碼塊
    {
        System.out.println("構造函數代碼塊...");
    }

    
// 默認構造函數 Student() { System.out.println("默認構造函數..."); } // 構造函數 Student(String name, int age) { this.name = name; this.age = age; System.out.println("構造函數..."); } public static void main(String[] args) { new Student("zhangsan", 20);
new Student("zhangsan", 20); } }
打印結果:

靜態代碼塊...
構造函數代碼塊...
構造函數...
構造函數代碼塊...
構造函數...

每 new 一次對象,都會執行構造代碼塊和對應的構造函數,靜態代碼塊只是執行一次.

構造函數順序