當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java this和this()的區別用法及代碼示例


在Java中,這和this()完全不同。

  • 這個關鍵字用於引用當前對象,即通過該對象調用方法。
  • this()用於從同一類的另一個構造函數調用一個構造函數。

下表顯示了該關鍵字與this()之間的點對點差異。

這個 this()

此關鍵字僅與對象一起使用。

this() 僅與構造函數一起使用。

它指的是當前對象。

它指的是同一個類的構造函數,其參數與傳遞給 this(parameters) 的參數匹配。

點(.) 運算符用於訪問成員。
例如,this.variableName;

不使用點(.) 運算符。僅傳遞匹配的參數。

它用於區分方法中的局部變量和實例變量。

它用於引用屬於同一類的構造函數。

請參閱下麵的代碼,其中說明了此關鍵字的用法。

Java


import java.io.*; 
  
public class Student { 
  
    private String name; 
    private int age; 
  
    // Note that in the Constructor below "this keyword" is 
    // used to differentiate between the local variable and 
    // the instance variable. 
  
    public Student(String name, int age) 
    { 
        // Assigns the value of local name variable 
        // to the name(instance variable). 
        this.name = name; 
        // Assigns the value of local Age variable 
        // to the Age(instance variable). 
        this.age = age; 
    } 
  
    public void show() 
    { 
        System.out.println("Name = " + this.name); 
        System.out.println("Age = " + this.age); 
    } 
  
    public static void main(String[] args) 
    { 
        // Creating new instance of Student Class 
        Student student = new Student("Geeks", 20); 
        student.show(); 
    } 
}
輸出
Name = Geeks
Age = 20

現在看一下下麵的代碼,它說明了 this() 的用法。

Java


import java.io.*; 
  
public class Student { 
  
    private String name; 
    private int age; 
  
    // Constructor 1 with String as parameter. 
    public Student(String name) 
    { 
        // This line of code calls the second constructor. 
        this(20); 
        System.out.println("Name of Student : " + name); 
    } 
  
    // Constructor 2 with int in parameter. 
    public Student(int age) 
    { 
        System.out.println("Age of student = " + age); 
    } 
  
    // Constructor 3 with no parameters. 
    public Student() 
    { 
        // This line calls the first constructor. 
        this("Geeks"); 
    } 
  
    public static void main(String[] args) 
    { 
        // This calls the third constructor. 
        Student student = new Student(); 
    } 
}
輸出
Age of student = 20
Name of Student : Geeks

Please note that this() should always be the first executable statement in the constructor. Otherwise, the program will give compile time error. 



相關用法


注:本文由純淨天空篩選整理自ankitsinghrajput大神的英文原創作品 Difference Between this and this() in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。