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