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限定一个实例变量,并使用类名称定义一个类变量。
Java 中为解决变量的命名冲突和不确定性问题,引入关键字 this 代表其所在方法的当前对象的引用:
1.构造方法中指该构造器所创建的新对象;
2.方法中指调用该方法的对象;
3.在类本身的方法或构造器中引用该类的实例变量(全局变量)和方法
this 只能用在构造器或者方法中,用于获得调用当前的构造器方法的对象引用。可以和任何的对象引用一样来处理这个this对象。
说明:
1.当实例变量和局部变量重名,JAVA 平台会按照先局部变量、后实例变量的顺序寻找。即,方法中使用到的变量的寻找规律是先找局部变量,再找实例变量。如果没用找到,将会有一个编译错误而无法通过编译。
2.如果使用 this.a,则不会在方法(局部变量)中寻找变量 a ,而是直接去实例变量中去寻找,如果寻找不到,则会有一个编译错误。
3.在一个方法内,如果没有出现局部变量和实例变量重名的情况下,是否使用 this 关键字是没有区别的。
4.在同一个类中,Java 普通方法的互相调用可以省略 this. ,而直接使用方法名 + 参数。因为 Java 编译器会帮我们加上。
例子:
下面的代码显示了如何使用 this 关键字来引用一个实例变量,它的名字被一个局部变量隐藏。
public class Main {
int num = 2014; // An instance variable
void printNum(int num) {
System.out.println("Parameter num: " + num);
System.out.println("Instance variable num: " + this.num);
}
public static void main(String[] args) {
Main tt6 = new Main();
tt6.printNum(2000);
}
}
上面的代码生成以下结果。
注意:
下面的代码显示了如何使用 this 关键字来引用一个实例变量,它的名字被一个局部变量隐藏。
例如,以下代码非常常见:
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();"
}
void m2() {
// do something
}
}
以上就是极悦小编介绍的“Java中this是什么意思”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为您服务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习