当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。