[javase學習筆記]-7.1 建構函式概述與預設建構函式
這一節我們來學習一個特殊的函數,那就是建構函式。
那麼什麼是建構函式呢?
既然是函數,那它應該是被定義在類中,同時有函數名,要明確函數返回的結果和參數類型。
我們這裡先看一下建構函式的特點:
1.函數名與類名相同;
2.不用定義傳回值類型
3.沒有具體的傳回值。
從這些特點來說,這確實是一個很特殊的函數哦。
我們來看一個定義建構函式的例子:
class Person{private String name;private int age;//定義一個Person類的建構函式Person()//建構函式,而且是空參數的。{System.out.println("person run");}public void speak(){System.out.println(name+":"+age);}}//測試類別class ConsDemo{public static void main(String[] args) {Person p = new Person();}}
結果:
結果我們看到了,當我們建立對象是,執行了我們定義的構造方法。
那麼我們可以這樣通俗的定義建構函式:
建構函式:構建創造對象時調用的函數。這樣是不是很好理解了。
那麼我們就可以清楚的知道建構函式的主要作用:
建構函式的作用:可以給對象進行初始化。
我們必須清楚,建立的每一個對象都必須要通過建構函式初始化。
那麼當我們一個類中沒有建構函式時,為什麼我們還是可以建立對象呢?那是因為有預設建構函式。
什麼是預設建構函式呢?
當一個類中如果沒有定義過建構函式,那麼該類中會有一個預設的空參數建構函式。
class Person(){}//建構函式,而且是空參數的,這其實就是類中的預設建構函式
但我們更要注意的是:如果在類中定義了指定的建構函式,那麼類中的預設建構函式就沒有了。
比如說我們定義一個類:
class Demo{}//一個什麼代碼都沒有的類
我們說這個類中有沒有內容?
答案當然是肯定的,雖然這個類是空的,但是我們可以建立它的對象,也就是說這個類中有一個預設的建構函式:
class Demo{Demo(){}}很顯然,這個類中確實有內容,就是我們說的預設建構函式。