Java中this关键字原理及作用

本文深入解析了Java中的this关键字,探讨了其在解决局部变量与类变量重名冲突中的作用,以及this关键字的原理,帮助读者理解如何准确地访问类中的成员变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

this关键字

一:this关键字的作用
*当方法的局部变量和类的变量名重名时,在不使用this的情况下会有什么结果?

Person

String name;//定义当前Person名字

//参数name是目标名字
//成员变量name是自己名字
public  void sayHello(String name) {
	System.out.println(name+",你好。我是"+name);
}

Demo01Person

public static void main(String[] args) {
	Person person = new Person();
	//设置当前person名字
	person.name = "王健林";
	//调用sayHello方法
	person.sayHello("王思聪");
}

运行结果:王思聪,你好。我是王思聪
总结:根据“就近原则”,优先使用局部变量。

*当方法的局部变量和类的变量名重名时,使用this的情况下会有什么结果?

Person {

String name;//定义当前Person名字

//参数name是目标名字
//成员变量name是自己名字
public  void sayHello(String name) {
	System.out.println(name+",你好。我是"+this.name);
}

Demo01Person {

public static void main(String[] args) {
	Person person = new Person();
	//设置当前person名字
	person.name = "王健林";
	//调用sayHello方法
	person.sayHello("王思聪");
}

运行结果:王思聪,你好。我是王健林
总结:当我们使用this.成员变量名时,就可以访问本类当中的成员变量。
由此我们可以总结出:使用this关键字可以准确的进行属性的标记
二:this关键字的原理
*跟着上面的代码 我们打印一下person和方法中的this的地址
Person {

String name;//定义当前Person名字

//参数name是目标名字
//成员变量name是自己名字
public  void sayHello(String name) {
	System.out.println(this);
}

Demo01Person {

public static void main(String[] args) {
	Person person = new Person();
	//设置当前person名字
	person.name = "王健林";
	//调用sayHello方法
	person.sayHello("王思聪");
	System.out.println(person);
}

打印结果:demo01.Person@7852e922 demo01.Person@7852e922
从结果我们可以看出,person和方法中this的地址是一样的。
由此我们可以总结出:通过谁调用的方法,谁就是this

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值