1. 程式人生 > >靜態程式碼塊,構造程式碼塊,構造方法三者的區別與聯絡

靜態程式碼塊,構造程式碼塊,構造方法三者的區別與聯絡

1.首先在任何一個類中,一般來說一定存在著構造方法,即使什麼也沒寫,那就說明類中預設是無參的構造方法,例如

public class  Student{

   private int age;

   public void setAge(int age){

this.age=age;

  }

         public int getAge(){

return age;

 }

public void show(){

System.out.println("學生愛學習");

}

}

這是一個完整的類,包括成員屬性,還有成員方法,同時還包括了構造方法,此時的構造方法時隱式無參的,是可以進行初始化的,但是如果一個類中有如下的內容

public class Studeng{

       private int age;

       static{

                System.out.println("這是靜態程式碼塊");

      }

      Student(){

              System.out.println("這是構造程式碼塊");

       }

       public Student(){

                System.out.println("這是無參構造方法");

       }

       public Student(int age){

              this.age=age;

              System.out.println("這是有參的構造方法")

       }

}//一般來說。構造方法是用來初始化的,一般每產生一個新的物件便會執行一次,但是執行有參的操作要看具體的情況,但是每次有且只能執行一個,但是構造程式碼塊,也是每次產生新類的時候就執行一次,但是是一定要執行,且不能進行過載,靜態程式碼塊,只有當類載入的時候,只能執行一次,當程式中沒有寫構造方法時,預設是 無參的,但是當沒有顯示的寫出靜態程式碼塊和構造程式碼塊是沒有預設的,也就是靜態程式碼塊和構造程式碼塊在程式中是可以省略的,(一個程式中可以同時存在幾個靜態程式碼塊)

例項:
public class TestDemo{

           public static void main(String[] args){

                 Student student=new Student();

                System.out.println("---------------------------------------------------------------------------");

                  Student student2=new Student();

               System.out.println("-----------------------------------------------------------------------------");

                 Student   student3=new Student(18);

           }

}

//最後的執行結果就是                       這是靜態程式碼塊

                                                             這是構造程式碼塊

                                                              這是無參構造方法

                                                          -----------------------------------------------------------------------------

                                                               這是構造程式碼塊

                                                                這是無參構造方法

                                                        -----------------------------------------------------------------------------

                                                                這是構造程式碼塊

                                                               這是有參的構造方法