1.this的類型:哪個物件呼叫就是哪個物件的參考類型
1.this.data; //存取屬性
#2.this.func(); //存取方法
# 3.this(); //呼叫本類別中其他建構方法
這種是在成員方法中使用
讓我們來看看不加this會出現什麼樣的狀況
class MyDate{ public int year; public int month; public int day; public void setDate(int year, int month,int day){ year = year;//这里没有加this month = month;//这里没有加this day = day;//这里没有加this } public void PrintDate(){ System.out.println(year+"年 "+month+"月 "+day+"日 "); } } public class TestDemo { public static void main(String[] args) { MyDate myDate = new MyDate(); myDate.setDate(2000,9,25); myDate.PrintDate(); MyDate myDate1 = new MyDate(); myDate1.setDate(2002,7,14); myDate1.PrintDate(); } }
我們想要達到的預期是分別輸出2000年9月25日,2002年7月14日。
而實際輸出的結果是
而當我們加上this時
class MyDate{ public int year; public int month; public int day; public void setDate(int year, int month,int day){ this.year = year; this.month = month; this.day = day; } public void PrintDate(){ System.out.println(this.year+"年 "+this.month+"月 "+this.day+"日 "); } } public class TestDemo { public static void main(String[] args) { MyDate myDate = new MyDate(); myDate.setDate(2000,9,25); myDate.PrintDate(); MyDate myDate1 = new MyDate(); myDate1.setDate(2002,7,14); myDate1.PrintDate(); } }
# 就實現了賦值的功能,為了避免出現錯誤,我們建議盡量帶上this
這種是指在普通成員方法中使用this呼叫另一個成員方法
class Student{ public String name; public void doClass(){ System.out.println(name+"上课"); this.doHomeWork(); } public void doHomeWork(){ System.out.println(name+"正在写作业"); } } public class TestDemo2 { public static void main(String[] args) { Student student = new Student(); student.name = "小明"; student.doClass(); } }
運行結果:
(3)this()
這種指在建構方法中使用this呼叫本類其他的建構方法
這種this的使用注意以下幾點
1. this只能在建構方法中呼叫其他建構方法
2.this要放在第一行
3.一個建構方法中只能呼叫一個建構方法
運行結果
#以上是Java中this方法怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!