本篇文章帮大家学习java this关键字,包含了Java this关键字使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。
this关键字是什么?
Java有一个关键字叫this。 它是对类的当前实例的引用。它只能在实例的上下文中使用。以下代码显示如何使用this关键字。
public class Main {
int varA = 1;
int varB = varA; // Assign value of varA to varB
int varC = this.varA; // Assign value of varA to varC
}
当实例变量或类变量被具有相同名称的另一个变量覆盖时,需要使用关键字this限定一个实例变量,并使用类名称定义一个类变量。
实例
下面的代码显示了如何使用this关键字来引用一个实例变量,它的名字被一个局部变量覆盖隐藏。
public class Main {
int num = 2018; // 这是一个实例变量
void printNum(int num) { // 这个参数的名称也叫 num ,与上面实例变量同名
System.out.println("Parameter num: " + num); // 打印参数 num 的值
System.out.println("Instance variable num: " + this.num); // 打印实例变量 num 的值
}
public static void main(String[] args) {
Main tt6 = new Main();
tt6.printNum(2017);
}
}
上面的代码生成以下结果。
Parameter num: 2017
Instance variable num:2018
注意:有时,需要保持变量名相同,因为它们代表相同的事情。
例如,以下代码非常常见:Student类声明了一个实例变量id。 在其setId()方法中,它还命名参数id,并使用this.id引用实例变量。它还使用this.id在其getId()方法中引用实例变量id。
public class Student {
private int id; // An instance variable
public void setId(int id) {
this.id = id;
}
public int getId() {
return this.id;
}
}
可以使用关键字this来限定实例方法名。 以下代码显示使用关键字this调用m2()方法的m1()方法。
public class Main {
void m1() {
// Invoke the m2() method
this.m2(); // same as "m2();"
// 或者不要 this 直接 m2();
// m2();
}
void m2() {
// do something
System.out.println("This m2() method.");
}
}