語法格式:算法
修飾符 類名(參數類型 參數1,參數類型 參數2,...){.....}編程
用於建立對象並初始化對象屬性的方法,叫「構造方法」,也叫「構造器」;構造器在類中定義。若未指定一個類的構造方法,則系統默認爲該類建立一個無參的構造方法.函數
語法格式: spa
修飾符 返回值類型 方法名(參數類型 參數1,參數類型 參數2,...){ 方法體; }對象
是用於對當前對象數據進行算法計算,實現業務功能。方法是對象的功能,對象的動做,對象的行爲。總之是動詞!方法名沒有規定,建議首單詞爲小寫動詞,其餘單詞首字母大寫。必須定義返回值(無返回值,聲明返回參數爲void)!可有無參數方法。方法調用只有兩種方式:①對象引用調用②類名調用(即靜態類時)。繼承
1)構造器的名稱必須與類名同名,包括大小寫。編譯器
2)構造器沒有返回值,但也不能寫void,也不能寫return。io
3)構造器的參數:通常是初始化對象的前提條件。編譯
4)用new調用!且對象一創建,構造器就運行且僅運行一次。通常方法可被調用屢次。權限
5)類必定有構造器!這是真的,不須要質疑!
6)若是類沒有聲明(定義)任何的構造器,Java編譯器會自動插入默認構造器!
7)默認構造是無參數,方法體是空的構造器,且默認構造器的訪問權限隨着所屬類的訪問權限變化而變化。如,若類被public修飾,則默認構造器也帶public修飾符。
8)默認構造器是看不到的,一旦本身寫上構造器則默認構造器就沒有了,本身寫的叫自定義構造器,即使本身寫的是空參數的構造器,也是自定義構造器,而不是默認構造器。
9)若是類聲明瞭構造器,Java編譯器將再也不提供默認構造器。若沒手動寫出無參構造器,但卻調用了無參構造器,將會報錯!
10)構造器是能夠重載的,重載的目的是爲了使用方便,重載規則與方法重載規則相同。
11)構造器是不能繼承的!雖然說是叫構造方法,但實際上它不是常說的通常方法。
12)子類繼承父類,那麼子類型構造器默認調用父類型的無參數構造器。
13)子類構造器必定要調用父類構造器,若是父類沒有無參數構造器,則必須使用super(有參數的),來調用父類有參的構造器。 那麼,爲何子類必定要訪問父類的構造器?
由於父類中的數據子類能夠直接獲取。因此子類對象在創建時,須要先查看父類是如何對這些數據進行初始化的,因此子類在對象初始化時,要先訪問一下父類中的構造器。
總之,子類中至少會有一個構造器會訪問父類中的構造器,且子類中每個構造函數內的第一行都有一句隱式super()。
14) 構造方法不能由編程人員調用,而要系統調用。
構造方法做用:
1.爲了初始化成員屬性,而不是初始化對象,初始化對象是經過new關鍵字實現的
2.經過new調用構造方法初始化對象,編譯時根據參數簽名來檢查構造函數,稱爲靜態聯編和編譯多態
(參數簽名:參數的類型,參數個數和參數順序)
3.建立子類對象會調用父類構造方法但不會建立父類對象,只是調用父類構造方法初始化父類成員屬性;
15)構造方法與通常方法在運行上的不一樣:
構造方法:
構造方法在建立的時候就給對象初始化; 一個對象創建構造方法只能運行一次;
通常方法:
通常方法是對象調用才執行,給對象添加對象具有的功能; 通常方法能夠被對象屢次調用;
有時一個類中可能存在多個構造函數,每一個構造函數的參數類型都不一樣
多個構造函數可看作方法的重載
根據參數類型匹配相應的構造函數