黑马程序员技术交流社区

标题: 关于this关键字的问题 [打印本页]

作者: 张龙跃    时间: 2013-4-29 01:00
标题: 关于this关键字的问题
本帖最后由 张龙跃 于 2013-4-29 02:39 编辑

        public void setName(String n)
        {
                name  = n;
        }


上面的代码多清楚
可为什么非要写成
        public void setName(String name)
        {
                this.name  = name;
        }

把人搞的迷迷糊糊

为什么啊

作者: smallsea    时间: 2013-4-29 01:13
给你举个例子:
class p{
  public  String name;
}

class s extends p{
    public String name;
    void show(String n){
         this.name =n;
    }
}
在这两个具有继承关系的类中,我在父类与子类都定义了相同名字的变量,然后在show方法中通过this用,如果我没有把子类中的 public String name;注释掉,那么通过this.name就代表着,调用子类的name变量,如果我把它注释掉,那么久调用父类当中的name变量,这就是区别
作者: 淡蓝色    时间: 2013-4-29 10:04
this关键字主要防止本类的成员和别的成员变量名重复,如参数name,本类成员name,或者父类的name成员,用this是一种推荐的编程习惯,并不是规定,如果你非不用this,那也可以,但要保证声明的每一个变量在其有效区域内没有重复




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2