構造方法
既然構造方法可以給屬性進行賦值,還需要set方法?
依然需要,因為構造方法僅僅是對象創建是執行,set方法是在對象創建後可以多次調用執行,對屬性值進行改變。
構造方法能調用其他普通方法?
是可以的,但是這種調用比較少。
普通方法能調用構造方法嗎?
不能。
對象的實例化過程:
Person p = new Person(「張三」,30);
1.載入Person.class文件到方法區
2.在棧中創建p引用變數,是Person類型的
3.在堆中開闢空間,並分配地址值
4.在堆中存儲默認值
5.屬性如果有顯示值,那麼進行顯示初始化,如果沒有跳過此步
6.執行構造方法初始化,將張三和30賦值給對象的屬性
7.將地址值賦值給p變數,p引用/指向了該空間
重載構造方法的調用。
需要使用 this(實參); 這個語句來實現。
要求:這個語句必須放在構造方法的第一行。目的就是為了讓該語句優先執行。
注意:重載形式的構造方法的第一行,至少有一個構造方法不能寫 this(實參); 語句。
之前創建對象時,類中沒有定義過構造方法,對象也創建成功了?
類中沒定義是因為系統提供了一個無參數,無方法體的構造方法 public 類名(){}。
但是,在類中定義過了構造方法了,那麼系統不再提供,必須以編寫的構造方法的格式來創建對象。