構造方法與this
阿新 • • 發佈:2018-11-11
- 構造方法
特點:與類名相同、沒有返回值、有一個系統預設生成的無參構造方法,可進行過載
public class Test {
public Test() {//沒有返回值、沒有void,名字與類相同
}
}
構造方法的過程:
Test t=new Test();//表示有一個Test型別的變數t,new Test表示建立一個物件,將此物件存入t中。
此時,有一個棧記憶體t被開闢成功,new Test()呼叫構造方法時,在堆記憶體中開闢了一個記憶體b,將b存入t中,而b中的值為Test的第一個屬性,b+1中儲存下一個屬性,以此類推。
建立匿名物件:
new Test();//沒有變數接收、只能用一次,因為每new一次就建立一個物件
構造方法的過載:3種類型。引數個數不同、引數型別不同、引數型別順序不同。
public class Test { int age; String name; public Test() { } public Test(int a) { age=a; } public Test(String s) { name=s; } public Test(int a,String s) { age=a; name=s; } public Test(String s,int a) { name=s;//與上一個輸出結果一樣,但引數順序不同。 age=a; } }
- this
用法:
表示當前物件: this可以在非靜態方法中直接使用,但是在靜態方法中不能使用this
呼叫構造方法:只能在構造方法內部的第一行。且呼叫其它構造方法時不能方法一呼叫方法二,二呼叫三,三呼叫一,如此形成迴路,會造成死迴圈。
呼叫屬性:當引數與屬性名字相同時,可以用this區分。如this.name=name;
總結:
無參構造方法被重寫時,原來系統的構造方法已經不存在了。
每new一次,就建立一個物件。
this可以被看作一個可以呼叫構造方法的物件(物件不能呼叫構造方法)。