一、java提供了一個this關鍵字,this關鍵字老是指向調用該方法的對象。根據this出現位置的不一樣,this做爲對象的默認引用有兩種情形。
a)、構造器中引用該構造器正在初始化的對象。(this老是引用該構造器正在初始化的對象。好比,局部變量和全局變量重名,this老是引用構造器的局部變量)。
b)、在方法中引用調用該方法的對象。
this關鍵字最大的做用就是讓類中一個方法,訪問該類的另外一個方法或者實例變量。(java容許對象的一個成員直接調用另外一個成員,能夠省略this前綴。大部分時候,一
個方法訪問該類中的定義的其餘方法、成員變量時加不加this前綴的效果是徹底同樣的)。
this能夠表明任何對象,當this出如今某個方法體中時,它表明的對象是不肯定的,但它的類型是肯定的,它所表明的對象只能是當前類。只有當這個方法被調用時,它所
表明的對象才被肯定下來。誰在調用這個方法,this就表明誰。
對於static修飾的方法而言,則可使用類來直接調用該方法,若是在statis修飾的方法中使用this關鍵字,則這個關鍵字就沒法指向合適的對象。因此,static修飾的方
法中不能使用this引用。因爲static修飾的方法不能使用this引用,因此static修飾的方法不能訪問不使用static修飾的普通成員,所以java語法規定:靜態成員不能
直接訪問非靜態成員。java
1 package com.bie.main; 2 3 /** 4 * 5 * @Description TODO 6 * @author biehl 7 * @Date 2019年3月9日 上午10:53:48 8 * 9 * 一、對象的this引用 10 * java提供了一個this關鍵字,this關鍵字老是指向調用該方法的對象。根據this出現位置的不一樣,this做爲對象的默認引用有兩種情形。 11 * 1)、構造器中引用該構造器正在初始化的對象。 12 * 2)、在方法中引用調用該方法的對象。 13 * this關鍵字最大的做用就是讓類中一個方法,訪問該類的另外一個方法或者實例變量。(java容許對象的一個成員直接調用另外一個成員,能夠省略this前綴。大部分時候,一 14 * 個方法訪問該類中的定義的其餘方法、成員變量時加不加this前綴的效果是徹底同樣的)。 15 * this能夠表明任何對象,當this出如今某個方法體中時,它表明的對象是不肯定的,但它的類型是肯定的,它所表明的對象只能是當前類。只有當這個方法被調用時,它所 16 * 表明的對象才被肯定下來。誰在調用這個方法,this就表明誰。 17 * 對於static修飾的方法而言,則可使用類來直接調用該方法,若是在statis修飾的方法中使用this關鍵字,則這個關鍵字就沒法指向合適的對象。因此,static修飾的方 18 * 法中不能使用this引用。因爲static修飾的方法不能使用this引用,因此static修飾的方法不能訪問不使用static修飾的普通成員,所以java語法規定:靜態成員不能 19 * 直接訪問非靜態成員。 20 */ 21 public class Person { 22 23 public int age;//成員變量。 24 25 public Person() { 26 //構造器中定義一個age局部變量 27 int age = 0; 28 //使用this表明該構造器正在初始化的對象。 29 //將構造器正在初始化的對象age對象設置爲25 30 this.age = 25; 31 } 32 33 public static void main(String[] args) { 34 System.out.println(new Person().age); 35 } 36 37 38 }
增強理解:this
this關鍵字老是指向調用該方法的對象。根據this出現位置的不一樣,this做爲對象的默認引用有兩種情形。
構造器中引用該構造器正在初始化的對象。注:this就是正在被初始化的對象。能夠調用屬性字段。
在方法中引用調用該方法的對象。注:this就是調用該方法的對象,能夠調用該方法的方法。
spa
待續......code