1. 程式人生 > >構造函數,構造代碼塊和靜態代碼塊的先後順序和運用

構造函數,構造代碼塊和靜態代碼塊的先後順序和運用

images pri 如果 什麽 存在 png 屬性 pack ges

在自學到java面向對象時,知道有靜態代碼塊,構造代碼塊和構造函數的存在,如果說構造函數是初始化對象,那麽其他2者又是怎麽使用,又有什麽區別呢。簡單的舉了下面的例子:

 1 package 面向對象;
 2 
 3  class Child 
 4 {
 5     private String country;
 6     private String name;
 7     Child(String name)//構造函數。
 8     {
 9         this.name=name;
10         System.out.println(this.name);
11     }
12 static //靜態代碼塊 13 { 14 System.out.println("哈哈"); 15 } 16 {//構造代碼塊。 17 country="中國"; 18 System.out.println(country); 19 } 20 } 21 public class ChildTest 22 { 23 public static void main(String[] args) 24 { 25 Child XiaoMing=new Child("小明");
26 Child XiaoWang=new Child("小王"); 27 } 28 }

打印的結果為技術分享

所以可以看出先後順序為靜態代碼塊,構造代碼塊,構造函數。

其中靜態代碼塊只隨著類的加載加載一次,一般就用於初始化類。

構造代碼塊每個對象出現時加載一次,不能改變,一般為初始化對象共同的固有的屬性。

構造函數每個對象出現時加載一次,可以加入參數改變變量,一般用於初始化對象的屬性。

構造函數,構造代碼塊和靜態代碼塊的先後順序和運用