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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaohihi 中级黑马   /  2016-3-24 15:29  /  826 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

this关键字是只能运用在一个方法中吗?this关键字一般在哪用啊

9 个回复

倒序浏览
成员变量和局部变量重名就可以使用,可以运用在多个方法,因为this代表当前对象的引用
回复 使用道具 举报
主要用来区分成员变量和局部变量重名,代表当前对象的应用,在类中为方法和字段的带来极大的方便
回复 使用道具 举报
举个例子来说明:
this这个关键字:主要用来区分成员变量和局部变量重名,代表当前对象的应用,在类中为方法和字段的带来极大的方便
class Person {
        private String name;//姓名
        private int age;//年龄
       
        public Person(){
       
        }
        public Person(String name,int age){
                this.name=name;
                this.age=age;
        }
        public void setAge(int age) {                //设置年龄
        this.age = age;
        //this代表当前对象的引用,而成员变量必须有对象调用,谁来调用setAge()方法this就代表谁
        }
        public int getAge() {                        //获取年龄
                return age;
        }

        public void setName(String name) {//设置姓名
                this.name = name;
        }
        public String getName(){
                return name;
        }
}
类如在上面声明的那个类中带有参数的构造方法,如果不使用this关键字需要这样来写:
public Person(String pname,int page){
                name=pname;
                age=page;
}
括号内的pname与page为局部变量,而name与age为成员变量,二者在构造方法中需要相符赋值,故变量名不能重名,因此,在类中为为成员变量赋值每次要做的事情就是为局部变量取名字,而且还要易于区分,有没有感觉到很麻烦
this就是来解决这个麻烦的,
this.name=name;
左边this.name指代类中成员变量的name
右边name指代方法中局部变量中的name
这样既完成了对成员变量的赋值,也省去了为局部变量取名字的麻烦
回复 使用道具 举报
this代表它所在函数所属对象的引用 简单点说:哪个对象在调用this所在的函数,this就代表哪个对象 this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用  this来表示这个对象,但凡本类功能内部使用了本类对象,都用this表示。 this语句:用于构造函数之间进行相互调用; this语句:只能定义在构造函数的第一行,因为初始化要先执行。
回复 使用道具 举报
本类中可以用 ,父类也可以
回复 使用道具 举报
666666666666666
回复 使用道具 举报
q6619866 发表于 2016-3-24 15:40
成员变量和局部变量重名就可以使用,可以运用在多个方法,因为this代表当前对象的引用 ...

那我在一个方法中使用,方法中也有相同名字的变量用this指哪个
回复 使用道具 举报
小海龙 发表于 2016-3-24 16:18
举个例子来说明:
this这个关键字:主要用来区分成员变量和局部变量重名,代表当前对象的应用,在类中为方 ...

讲的很详细,多谢
回复 使用道具 举报
this关键字在成员变量名和局部变量名一样的时候使用,用于区分两者
当你要同时使用局部变量和成员变量的时候,使用this关键字
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马