在這里我們談論一下構造代碼塊,構造函數和普通函數的區別和調用時間。
構造代碼塊:最早運行,比構造函數運行的時間好要提前,和構造函數一樣,只在對象初始化的時候運行。
構造函數:運行時間比構造代碼塊時間晚,也是在對象初始化的時候運行。沒有返回值,構造函數名稱和類名一致。
普通函數:不能自動調用,需要對象來調用,例如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 }
運行結果:
通過上面的程序運行結果,我們可以看出,不管構造代碼塊是在構造函數之后還是在構造函數之前,都是先運行構造代碼塊
然后在運行構造函數。構造函數通過重載,有兩種初始化方式,一種是沒有參數的,一種是有參數的。
如果不調用普通函數,普通函數是不能執行的。