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