A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张龙跃 中级黑马   /  2013-4-29 01:00  /  1037 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张龙跃 于 2013-4-29 02:39 编辑

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


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

把人搞的迷迷糊糊

为什么啊

2 个回复

倒序浏览
给你举个例子:
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变量,这就是区别
回复 使用道具 举报
this关键字主要防止本类的成员和别的成员变量名重复,如参数name,本类成员name,或者父类的name成员,用this是一种推荐的编程习惯,并不是规定,如果你非不用this,那也可以,但要保证声明的每一个变量在其有效区域内没有重复
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马