1. 程式人生 > >JAVA——this 關鍵字

JAVA——this 關鍵字

this關鍵字的介紹

(一)this呼叫本類屬性

· 通過this關鍵字可以明確的去訪問一個類的成員變數,解決與區域性變數名稱衝突問題。
舉例如下:

class Person2{
	//方法
	private String name;
	
	//構造方法
	//引數名(即區域性變數)與屬性名(即成員變數名)相同,
	//為了加以區分,屬性名前加 this,用於訪問屬性變數
	public Person2(String name){
		this.name = name;
	}
	public String getName(){
		return name;
	}	
}

(二)this關鍵字呼叫本類方法



· this呼叫本類方法時的兩種情況
1.呼叫普通方法:this.方法名稱(引數)——可省略——最好不省略
2.呼叫構造方法:this(引數)
(1)this在本類中呼叫普通方法

this.方法名稱(引數)——可省略——最好不省略
舉例如下:

class Person2{
	//方法
	private String name;
	//構造方法
	//引數名(即區域性變數)與屬性名(即成員變數名)相同,
	//為了加以區分,屬性名前加 this,用於訪問屬性變數
	public Person2(String name){
		this.name = name;
	}
	public String getName
(){ return name; //此處呼叫普通方法,但是一定要在本類中 this.print(); } //普通方法 public void print(){ System.out.prinbtln("##33##"); } }

(2)this關鍵字在本類中呼叫構造方法

1. this呼叫構造方法的語句必須在構造方法首行,且只能出現一次;
2. 使用this呼叫構造方法時,請留有出口 ;
3. 只能在構造方法中使用this呼叫構造方法,不能在普通方法中呼叫;



· 形式:this.(引數)
舉例如下:

class Person2{
	 //方法——private封裝
private String name; private int age; //構造方法 public Person2(){ } public Person2(String name){ this();//呼叫本類無參構造方法 this.name = name; } public Person2(String name,int age){ this(name);//呼叫本類有參構造方法 this.age = age; } //方法setter設定 和 getter獲取 public void setName(String name){ this.name = name;//訪問成員變數 } public String getName(){ return name; } public void setAge(int age){ if(age < 0 || age >= 150){ System.out.println("輸入錯誤!"); } else{ this.age = age;//訪問成員變數 } } public int getAge(){ return age; } //方法 public void intriduce(){ System.out.println("姓名:"+name+",年齡:"+age); } }
public class Test3{
	public static void main(String[] args){
		Person2 sg1 = new Person2("kelly",21);
		Person2 sg2 = new Person2("張三");
		sg1.intriduce();
		sg2.intriduce();
	}
}

執行結果如下:
在這裡插入圖片描述

(三)this關鍵字表示當前物件

· 只要物件呼叫了本類中的方法,這個this就表示當前執行的物件 。

class Person2{
	 public void print(){
		 System.out.println("輸出:"+this);
	 }
 }
public class Test3{
	public static void main(String[] args){
		Person2 sg1 = new Person2();
		System.out.println(sg1);
		sg1.print();//物件呼叫本類中的方法,則方法中的this就表示當前執行的物件sg1
		System.out.println("————————————");
		Person2 sg2 = new Person2();//物件呼叫本類中的方法,則方法中的this就表示當前執行的物件sg2
		System.out.println(sg2);
		sg2.print();
	}
}

執行結果如下:
在這裡插入圖片描述