java的this關鍵字理解


1、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語法規定:靜態成員不能
    直接訪問非靜態成員。

 1 package com.bie.main;
 2 
 3 /**
 4  * 
 5  * @Description TODO
 6  * @author biehl
 7  * @Date 2019年3月9日 上午10:53:48
 8  * 
 9  * 1、對象的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就是調用該方法的對象,可以調用該方法的方法。

待續......

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM