Java_this

OK,今天通过在看老韩的视频, 了解了java中this的基本用法,以下是我想分享的一些心得:

1、初识 this

======================初识 this ==========================================

 在JAVA中this 关键字有什么作用呢?先说结论:在java中哪个对象调用,this就代表哪个对象!!

什么意思呢?先举个例子:这就好比假如我是杨过, 我说我的妻子是小龙女。 这时还有一个人叫张无忌,张无忌的妻子和小龙女没有关系,张无忌说”我的妻子“,那就是他自己的妻子,和小龙女就没关系。 我说”我的妻子“ 代表小龙女, 而张无忌说”我的妻子“就是张无忌他的妻子,就不能代表小龙女了。

这里”我的“就好比java 中的this。

2、探索this

=======================探索 this ===========================================

this 在构造器中的应用

如过在构造器中不加this,即

class Person{
	String name;
	int age;

	public Person(String name, int age){
		System.out.println("this->hashCode:" + this.hashCode());
		name = name;
		age  = age;
	}
}

public class This{
	public static void main(String[] args){

		Person p1 = new Person("张无忌", 26);
		
		System.out.println("name = " + p1.name + "\t" + "age = " + p1.age );

	}
}

无论你姓名是什么, 年龄是什么 都只会得到下面的默认值结果,这是因为由于就近原则,此时的name = name 两个都是局部变量 即形参列表里的name 不会改变该对象的属性name

解决方法有两种:1、是形参列表和属性分别取不同的名字 如:

class Person{
	String name;
	int age;

	public Person(String pname, int page){
		System.out.println("this->hashCode:" + this.hashCode());
		name = pname;
		age  = page;
	}
}

这样会得到预期结果

2、使用this

class Person{
	String name;
	int age;

	public Person(String name, int age){
		this.name = name;
		this.age  = age;
	}
}

也会得到预期结果。 

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值