this關鍵字
記住一點:每一個方法都會默認傳入一個變量叫this,它永遠指向調用它的【當前實例】。
(1) this訪問屬性和方法
寫段代碼:
//構造方法和其他方法一樣可以重載,可以有參數,名字必須和類名一 樣,不能有一點區別public Dog(String name){System.out.println("驗證構造方法被調用的時機:【"+ name + "】被創建! ");this.name = name;}public void eat(){// this也可以在成員方法中使用System.out.printf("【%s】再吃骨頭。 ",this.name); }public static void main(String[] args) {//直接new對象看看new的時候是不是調用了構造方法,事實證明 是的new Dog("哈士奇").eat();}
一個方法只有在調用的時候,才能明確方法中的【this】具體指向哪個實例對象。
我們可以使用this訪問當前對象的方法和屬性。
(2) this訪問構造器
還可以訪問當前類的構造器:
//構造方法和其他方法一樣可以重載,可以有參數,名字必須和類名一樣,不能有一點區別public Dog(String name){System.out.println("驗證構造方法被調用的時機:【"+ name + "】被創建! ");this.name = name;}public Dog(){this("default");}
如果我們使用無參構造會傳入一個默認值,這就是典型的案例
注意:this當做構造器只能放在第一行