1.代表成員變量
我們如何區分開:同名的成員變量和在構造方法中的局部變量呢?---用this。
package com.dh.oop;
public class ThisDemo {
public String name;
public ThisDemo(String name){
//將構造方法的參數值賦值給成員變量
this.name = name;
}
}
在構造方法中,this代表的就是成員變量。
2.代表當前對象的引用
我們知道,在實例化對象時,會利用構造方法進行初始化成員變量,所以每調用一次構造方法,初始化的都是正在實例化的這個對象的成員變量,即this,所以在構造方法中輸出this,結果為當前對象的哈希碼值。對象是引用數據類型,直接輸出,輸出的就是其地址。
package com.dh.oop;
public class ThisDemo {
public String name;
public ThisDemo(){
//在構造方法中輸出this,為當前調用構造方法實例化對象的哈希碼值
System.out.println(this);
}
public static void main(String[] args) {
ThisDemo tom = new ThisDemo();
ThisDemo jerry = new ThisDemo();
}
}

3.在構造方法中使用this調用其它構造方法
package com.dh.oop;
public class ThisDemo {
public String name;
public int age;
//第一個構造方法
public ThisDemo(String name){
//調用第二個構造方法
this(name,18);
}
//第二個構造方法
public ThisDemo(String name,int age) {
this.name = name;
this.age = age;
}
public static void main(String[] args) {
//調用第一個構造方法
ThisDemo tom = new ThisDemo("tom");
System.out.println(tom.name+"\t"+tom.age);
}
}

分析結果,雖然在main方法中調用的是第一個構造方法,但由於在第一個構造方法中調用了第二個構造方法,所以輸出了tom 18。
注意:
必須放在第一行,所以每個構造器中只能使用一次,因為必須要保證在第一行,但是要注意,不能相互調用,否則書寫代碼時就會報錯。


4.調用其它成員方法
public void show(){
System.out.println("show");
}
public void show1(){
//調用其它成員變量,該this通常可省略
this.show();
show();
}
這種用法了解一下即可~
5.this使用注意事項
this不能用於static方法中!
很很很淺顯的解釋一下:static修飾的方法是靜態方法,是屬於類的,它是在類裝載的時候初始化的,也就是說它是最早出生的方法,這個時候對象都還沒出生,你卻讓static方法去使用它,這肯定是不對的!你不能在你媽媽都沒懷上你的時候就去給學校報名讓你上學吧!
最最常用的就是1,以及注意事項要了解。
