天天看點

java構造代碼塊,構造函數和普通函數的差別和調用時間

在這裡我們談論一下構造代碼塊,構造函數和普通函數的差別和調用時間。

構造代碼塊:最早運作,比構造函數運作的時間好要提前,和構造函數一樣,隻在對象初始化的時候運作。

構造函數:運作時間比構造代碼塊時間晚,也是在對象初始化的時候運作。沒有傳回值,構造函數名稱和類名一緻。

普通函數:不能自動調用,需要對象來調用,例如a.add();

如果隻看代碼運作先後順序的話:構造代碼塊>構造函數>普通函數

下面給一個程式

1 public  class Test1 {
 2 
 3     public static void main(String[] args) {
 4         code n=new code();
 5         n.normal();
 6         
 7     }
 8 }
 9 class code{
10     //構造代碼塊1:
11     {
12         System.out.println("我是構造代碼塊1");
13     }
14     //構造函數1
15     public code(){
16         System.out.println("我是構造函數1");
17     }
18     //構造函數2
19     public code(int t){
20         System.out.println("我是構造函數2"+t);
21     }
22     //普通函數
23     public void normal(){
24         System.out.println("我是普通函數");
25     }
26     //構造代碼塊2:
27         {
28             System.out.println("我是構造代碼塊2");
29         }
30 }      

運作結果:

java構造代碼塊,構造函數和普通函數的差別和調用時間

通過上面的程式運作結果,我們可以看出,不管構造代碼塊是在構造函數之後還是在構造函數之前,都是先運作構造代碼塊

然後在運作構造函數。構造函數通過重載,有兩種初始化方式,一種是沒有參數的,一種是有參數的。

如果不調用普通函數,普通函數是不能執行的。