在Java中,這和this()完全不同。
- 這個關鍵字用於引用當前對象,即通過該對象調用方法。
- this()用於從同一類的另一個構造函數調用一個構造函數。
下表顯示了該關鍵字與this()之間的點對點差異。
這個 | this() |
---|---|
此關鍵字僅與對象一起使用。 |
this() 僅與構造函數一起使用。 |
它指的是當前對象。 |
它指的是同一個類的構造函數,其參數與傳遞給 this(parameters) 的參數匹配。 |
點(.) 運算符用於訪問成員。 |
不使用點(.) 運算符。僅傳遞匹配的參數。 |
它用於區分方法中的局部變量和實例變量。 |
它用於引用屬於同一類的構造函數。 |
請參閱下麵的代碼,其中說明了此關鍵字的用法。
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.
相關用法
- Java throw和throws的區別用法及代碼示例
- Java toDegrees()用法及代碼示例
- Java toRadians()用法及代碼示例
- Java trustStore和keyStore的區別用法及代碼示例
- Java String compareToIgnoreCase()用法及代碼示例
- Java String compareTo()用法及代碼示例
- Java String split()用法及代碼示例
- Java String length()用法及代碼示例
- Java String replace()用法及代碼示例
- Java String replaceAll()用法及代碼示例
- Java String substring()用法及代碼示例
- Java String equals()用法及代碼示例
- Java String equalsIgnoreCase()用法及代碼示例
- Java String contains()用法及代碼示例
- Java String indexOf()用法及代碼示例
- Java String trim()用法及代碼示例
- Java String charAt()用法及代碼示例
- Java String toLowerCase()用法及代碼示例
- Java String concat()用法及代碼示例
- Java String valueOf()用法及代碼示例
- Java String matches()用法及代碼示例
- Java String startsWith()用法及代碼示例
- Java String endsWith()用法及代碼示例
- Java String isEmpty()用法及代碼示例
- Java String intern()用法及代碼示例
注:本文由純淨天空篩選整理自ankitsinghrajput大神的英文原創作品 Difference Between this and this() in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。