Java中如何理解和使用this這個關鍵字

如何理解this的小案例

先寫this可以這樣使用:當局部變量和全局變量同名時,如何區分他們,並使用他們。
this的用法
Cat.java

package hzrj.This;

//this 如何使用的情況
public class Cat {
	
	private String name;
	private int age;
	
	public Cat(){
		
	}
	
	public void SetName(String name){
		//name=name;	可以試試把這個註釋取消,把下面這句註釋打上,在運行看看有啥區別
		this.name=name;
	}
	
	public void SetAge(int age){
		this.age=age;
	}
	
	public void say(){
		System.out.println("name"+this.name+","+"age"+this.age);
	}
}

CatDemo.java

package hzrj.This;

public class CatDemo {

	public static void main(String[] args) {
		// TODO 自動生成的方法存根
		Cat cat = new Cat();
		cat.SetName("湯姆");
		cat.SetAge(3);
		cat.say();
	}
}

在這裏插入圖片描述
以上是this來區別對待全局變量和局部變量一個小案例。

以下是非static方法互調,重構互調的this用法

類中非static方法間互調(可以用this也可以不用this,建議使用)如下
Cat.java

package hzrj.This;

//this 如何使用的情況
public class Cat {

	private String name;
	private int age;

	public Cat() {

	}

	public Cat(String name) {
		this(name, 0);
		this.say();	//精華在這
	}

	public Cat(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
	public void say(){
		System.out.println("name"+name);
	}
}

重構之間的互調如下

Cat.java

package hzrj.This;

//this 如何使用的情況
public class Cat {

	private String name;
	private int age;

	public Cat() {

	}
	
	public Cat(String name) {
		this(name, 0);	//精華在這
		System.out.println("name"+name);
	}

	public Cat(String name, int age) {
		this.name = name;
		this.age = age;
	}
}

CatDemo.java

package hzrj.This;

public class CatDemo {

	public static void main(String[] args) {
		// TODO 自動生成的方法存根
		Cat cat = new Cat("湯姆仔");
	}
}

在這裏插入圖片描述

結束語

個人水平感覺this,一般在對待全局局部變量時,重構互調時,稍微常用寫。(地點惠州某廠,2020年2月15日13點17分),以後再更新新的感受(再次更新的時間)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章