黑马程序员技术交流社区

标题: 学习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