Java中“this”的含义是什么?
通常,我只在构造函数中使用。this
我知道它用于标识参数变量(通过使用),如果它与全局变量具有相同的名称。this.something
但是,我不知道Java中的真正含义是什么,以及如果我使用没有点()会发生什么。this
this
.
通常,我只在构造函数中使用。this
我知道它用于标识参数变量(通过使用),如果它与全局变量具有相同的名称。this.something
但是,我不知道Java中的真正含义是什么,以及如果我使用没有点()会发生什么。this
this
.
this
引用当前对象。
每个非静态方法都在对象的上下文中运行。因此,如果你有一个这样的类:
public class MyThisTest {
private int a;
public MyThisTest() {
this(42); // calls the other constructor
}
public MyThisTest(int a) {
this.a = a; // assigns the value of the parameter a to the field of the same name
}
public void frobnicate() {
int a = 1;
System.out.println(a); // refers to the local variable a
System.out.println(this.a); // refers to the field a
System.out.println(this); // refers to this entire object
}
public String toString() {
return "MyThisTest a=" + a; // refers to the field a
}
}
然后调用将打印frobnicate()
new MyThisTest()
1 42 MyThisTest a=42
因此,您可以有效地将其用于多种事情:
以下是从这里复制和粘贴,但很好地解释了关键字的所有不同用法:this
定义:Java的this
关键字用于引用使用它的方法的当前实例。
以下是使用它的方法:
明确表示使用实例变量而不是静态或局部变量。那是
private String javaFAQ;
void methodName(String javaFAQ) {
this.javaFAQ = javaFAQ;
}
此处,这是指实例变量。此处,局部变量的优先级很高。因此,缺少 表示局部变量。如果作为参数名称的局部变量与实例变量不同,则无论是否使用,它都表示实例变量。this
this
this
用于引用构造函数
public JavaQuestions(String javapapers) {
this(javapapers, true);
}
这将调用具有两个参数的同一 java 类的构造函数。
this
用于将当前 java 实例作为参数传递
obj.itIsMe(this);
与上面类似,这也可用于返回当前实例
CurrentClassName startMethod() {
return this;
}
注意:在上述两点的内部类中使用时,这可能会导致不需要的结果。由于这将引用内部类而不是外部实例。
this
可用于获取当前类的句柄
Class className = this.getClass(); // this methodology is preferable in java
虽然这可以通过以下方式完成
Class className = ABC.class; // here ABC refers to the class name and you need to know that!
与往常一样,与其实例相关联,这在静态方法中不起作用。this