2018-04-30
?
this關鍵字
?
什么是this:
表示當前對象本身,或當前類的一個實例,通過 this 可以調用本對象的所有方法和屬性。
?
this主要存在于兩個地方:
1)構造函數:此時this表示調用當前創建的對象
2)成員方法中:對象a調用this所在的方法,此時this就表示對象a
?
當一個對象創建以后,JVM會自動分配一個引用當前對象的this
?
內存分析:
?
?
?
this的使用:
1)使用this區分同名變量
成員變量與局部變量(參數),重名時,希望在方法內部調用成員變量
1 class Person {
2 private int age = 10;
3 public Person(){
4 System.out.println("初始化年齡:"+age);
5 }
6 public int GetAge(int age){
7 this.age = age;
8 return this.age;
9 }
10 }
11
12 public class test1 {
13 public static void main(String[] args) {
14 Person Harry = new Person();
15 System.out.println("Harry's age is "+Harry.GetAge(12));
16 }
17 }
?
運行結果:
初始化年齡:10
Harry's age is 12
?
可以看到,這里age是GetAge成員方法的形參,this.age是Person類的成員變量。
2)作為方法名來初始化對象(構造器重載的方法)
也就是相當于調用本類的其它構造方法,它必須作為構造方法的第一句。
3)作為參數傳遞
需要在某些完全分離的類中調用一個方法,并將當前對象的一個引用作為參數傳遞時。
?
?
參考:
https://www.cnblogs.com/hasse/p/5023392.html(this和super的用法總結)
http://www.weixueyuan.net/view/5988.html
?