Java——類的成員之4:程式碼塊(初始化塊)
阿新 • • 發佈:2020-08-22
- 用來初始化類、物件
- 程式碼塊如果有修飾的話,只能用static.
- 分類:靜態程式碼塊和非靜態程式碼塊
- 靜態程式碼塊:
- 內部可以有輸出語句;
- 隨著類的載入而執行(只執行一次),只要類沒有重新載入就不會重新執行
- 靜態程式碼塊內只能呼叫靜態的屬性,靜態的方法,不能呼叫非靜態的結構
- 非靜態程式碼塊:
- 內部可以有輸出語句;
- 隨著物件的建立(new 物件)而執行(每new一個就執行一次)
- 非靜態程式碼可以呼叫靜態的屬性、方法,或者非靜態的屬性、方法,
- 靜態程式碼塊:
- 可以有多個程式碼塊,執行順序是按照宣告的先後順序執行
- 靜態程式碼塊的執行是優先於非靜態程式碼塊的執行
package com.block.java;public class BlockTest { public static void main(String[] args) { String desc=Person.desc; Person p1=new Person(); Person p2=new Person(); } } class Person{ // 屬性 String name; int age; static String desc="我是一個人"; // 構造器 publicPerson() { } public Person(String name,int age) { this.name=name; this.age=age; } // 方法 public void eat() { System.out.println("吃飯"); } public static void info() { System.out.println("我是一個快樂的人"); } // 程式碼塊 { //非靜態程式碼塊System.out.println("block!"); } static { // 靜態程式碼塊 System.out.println("static block!"); } }