java的this關鍵字理解

一、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

相關文章
相關標籤/搜索