1. 程式人生 > >構造方法與this

構造方法與this

  • 構造方法

特點:與類名相同、沒有返回值、有一個系統預設生成的無參構造方法,可進行過載

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可以被看作一個可以呼叫構造方法的物件(物件不能呼叫構造方法)。