黑马程序员技术交流社区

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

作者: xiaohihi    时间: 2016-3-24 15:29
标题: this关键字
this关键字是只能运用在一个方法中吗?this关键字一般在哪用啊
作者: q6619866    时间: 2016-3-24 15:40
成员变量和局部变量重名就可以使用,可以运用在多个方法,因为this代表当前对象的引用
作者: 小海龙    时间: 2016-3-24 16:00
主要用来区分成员变量和局部变量重名,代表当前对象的应用,在类中为方法和字段的带来极大的方便
作者: 小海龙    时间: 2016-3-24 16:18
举个例子来说明:
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
这样既完成了对成员变量的赋值,也省去了为局部变量取名字的麻烦
作者: zhoubinjian    时间: 2016-3-24 16:23
this代表它所在函数所属对象的引用 简单点说:哪个对象在调用this所在的函数,this就代表哪个对象 this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用  this来表示这个对象,但凡本类功能内部使用了本类对象,都用this表示。 this语句:用于构造函数之间进行相互调用; this语句:只能定义在构造函数的第一行,因为初始化要先执行。
作者: 轰天雷    时间: 2016-3-24 21:16
本类中可以用 ,父类也可以
作者: 喂喂喂    时间: 2016-3-24 22:26
666666666666666
作者: xiaohihi    时间: 2016-3-25 16:16
q6619866 发表于 2016-3-24 15:40
成员变量和局部变量重名就可以使用,可以运用在多个方法,因为this代表当前对象的引用 ...

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

讲的很详细,多谢
作者: 梧桐树上的男人    时间: 2016-3-25 22:07
this关键字在成员变量名和局部变量名一样的时候使用,用于区分两者
当你要同时使用局部变量和成员变量的时候,使用this关键字




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