this 关键字 Java

this 关键字是什么 Java?
此 此关键字 Java 是引用变量,它引用方法或构造函数的当前对象。使用 this 关键字的主要目的是 Java 目的是消除同名类属性和参数之间的混淆。
此关键字的使用 Java
以下是关键字 this 的各种用法 Java:
- 它可以用来引用当前类的实例变量。
- 它可以用来调用或初始化当前类的构造函数。
- 它可以作为参数传递给方法调用。
- 它可以作为参数传递给构造函数调用。
- 它可以用来返回当前类实例。
点击 开始 如果视频无法访问
如何通过示例理解这个关键词

- 增益级: 类帐户
- 实例变量:a 和 b
- 方法集数据:设置a和b的值。
- 方法显示数据:显示 a 和 b 的值。
- 主要方法: 我们创建 Account 类的对象,并调用 set data 和 show data 方法。
走出编译器迷雾
让我们编译并运行代码。
我们对 A 和 B 的预期输出应分别初始化为值 2 和 3。
但该值为0。为什么?让我们来探究一下。
在 Set 数据方法中,参数被声明为 a 和 b,而实例变量也被命名为 a 和 b。
执行过程中,编译器无法判断赋值运算符左侧的“a”是实例变量还是局部变量。因此,在调用设置数据的方法时,编译器不会设置“a”的值。
答案就是这个关键词。
在后面同时加上“a”和“b”。 Java 此关键字后跟一个点(.)运算符。
在代码执行期间,当对象调用 setdata 方法时,关键字 this 会被替换为对象句柄“obj”。(参见下图。)
现在编译器知道了,
- 左侧的“a”是一个实例变量。
- 而右侧的“a”是一个局部变量。
此 变量 已正确初始化,并显示预期的输出。
编译器如何处理多个对象
假设你为实例变量和方法参数选择了不同的名称。
但是这一次,您创建了两个类对象,每个对象都调用设置数据方法。
编译器如何确定它应该操作对象 1 的实例变量还是对象 2 的实例变量?
那么, 编译器隐式附加 带有 this 关键字的实例变量(如下图所示)。
这样,当对象 1 调用设置数据方法时,实例变量就会被其引用变量附加。
当对象2调用设置数据方法时,对象2的一个实例变量被修改。
编译器会自动处理这种情况。除非特殊情况需要,否则无需显式添加 this 关键字。
例如:此关键字 Java 与 Code
计费示例: 学习此关键词的用法。
步骤1) 将以下代码复制到记事本中。
class Account{ int a; int b; public void setData(int a ,int b){ a = a; b = b; } public void showData(){ System.out.println("Value of A ="+a); System.out.println("Value of B ="+b); } public static void main(String args[]){ Account obj = new Account(); obj.setData(2,3); obj.showData(); } }
步骤2) 保存、编译并运行代码。
步骤3) a 和 b 的值显示为零?要更正错误,请在第 6 行和第 7 行末尾添加以下内容: Free Introduction 关键词。
this.a =a; this.b =b;
步骤4) 保存、编译并运行代码。这次,a 和 b 的值分别设置为 2 和 3。
常见问题
查看我们的文章 Java 面试问题:- 点击这里











