黑马程序员技术交流社区
标题:
学习this关键字想到的一点问题
[打印本页]
作者:
张涛的狂怒
时间:
2014-7-26 12:47
标题:
学习this关键字想到的一点问题
本帖最后由 张涛的狂怒 于 2014-8-6 09:57 编辑
public class Person {
private String name;
public Person(String name){
this.name=name;
}
}
这时候是很明显的,this.name是类的属性,等号后面的name是参数传进来的。
public class Person {
private String name;
public Person(String name){
name=name;
}
}
这时候等号前面的name代表什么?等号后面的name代表什么?
作者:
icris
时间:
2014-7-26 13:04
等号前后的name都是参数传进来的
作者:
hejinzhong
时间:
2014-7-26 14:04
你可以测试下,在不同地方打印下name的结果
作者:
ztw
时间:
2014-7-26 14:06
都是传进来的参数吧
作者:
编程学徙
时间:
2014-7-26 14:09
public class Person {
private String name;
public Person(String name){
this.name=name;//此时,this.name调用该方法的对象的属性,而后面那个name是函数的形参;
}
}
public class Person {
private String name;
public Person(String name){
name=name;//这个时候,前后两个name都只表示形参,如果这样编写程序,是达不到预期的效果的。
}
}
作者:
楚风★憧憬
时间:
2014-7-26 14:16
this关键其实还有一个目的防止同名变量的问题,前面不加this代表的参数的this
作者:
单线程xia
时间:
2014-7-26 14:16
本帖最后由 单线程xia 于 2014-7-26 14:21 编辑
前面的name是本类的成员变量,不可省略this. ,完整的应该是this.name ,否则会null
后面的name接收的是传过来的实参。
作者:
痞子、蔚
时间:
2014-7-26 22:46
成员变量与局部变量重名时,成员变量前必须加上this,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2