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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© willsame 中级黑马   /  2016-3-18 00:07  /  733 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

哪位能给我解释一下,那个this具体是个什么原理么?看视频听得我有些蒙逼了

10 个回复

倒序浏览
就是代表当前对象咯,例如,你new了一个对象,那this就代表这个对象

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 赞一个!

查看全部评分

回复 使用道具 举报
this. 就是指对象,this()就是进行对空参数的构造方法的初始化

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
1..............
this:看上去,是用于区分局部变量和成员变量同名情况。
this为什么可以解决这个问题?
this到底代表的是什么呢?

this:就代表本类的对象,到底代表哪一个呢?
        this代表它所在函数所属对象的引用。
        简单说:哪个对象在调用this所在的函数,this就代表哪个对象。


this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。
                但凡本类功能内部使用了了本类对象,都用this表示。


class Person
{
        private String name;
        private int age;
        Person(int age)
        {
                this.age = age;        //this.指本类中的age
        }
        Person(String name)
        {
                this.name = name;      //this.指本类中的name
        }
        Person(String name,int age)
        {
                this.name = name;    //this.指本类中的name
                this.age = age;         //this.指本类中的age
        }


        public void speak()
        {
                System.out.println("name="+this.name+"...age="+this.age);       //this.指本类中的name , age
                this.show();    //this.指本类中的show方法
        }
        public void show()
        {
                System.out.println(this.name);    //this.指本类中的name
        }


        /*
        需求:给人定义一个用于比较年龄是否相同的功能。也就是是否是同龄人。
        */
        public boolean compare(Person p)
        {
                return this.age==p.age;    //this.指本类中的age


        }
}


class PersonDemo3
{
        public static void main(String[] args)
        {


                Person p1 = new Person(20);       //this.指对象p1中的name,age.
                Person p2 = new Person(25);      //this.指对象p2中的name,age.
                boolean b = p1.compare(p2);
                System.out.println(b);




                Person p = new Person("lisi");
                p.speak();
                p1.speak();
        }
}
2................................
this语句 :用于构造函数之间进行互相调用。

this语句只能定义在构造函数的第一行。因为初始化要先执行。



class Person
{
        private String name;
        private int age;
       
        {
               
                System.out.println("code run");
        }
       
        Person()
        {
                //this("hah");
                System.out.println("person run");
        }
        Person(String name)
        {
                //this();
                this.name =name;
        }
        Person(String name,int age)
        {
                //this(name);
                //this.name = name;
                this.age = age;
               
        }

}

class  PersonDemo4
{
        public static void main(String[] args)
        {
                new Person();
                //Person p = new Person("lisi",30);
                //Person p1 = new Person("lisi2",36);

        }
}

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 hjh987099654 于 2016-3-18 22:16 编辑

就是你当前引用的对象啊。比方说 Xxx   a = new Xxx();   然后你用a去调用方法,this就代表a,也就是当前对象。

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
a去调用方法,this就代表a,也就是当前对象。
回复 使用道具 举报
this代表的是当前对象的地址,例如this.name就是当前对象的name
回复 使用道具 举报
this指的是应用对象的地址,就是一个动态的代号
回复 使用道具 举报
flyhui 中级黑马 2016-3-19 21:50:12
9#
this代表当前对象。你引用谁,this就代表谁
回复 使用道具 举报
对象不都有地址值吗,this就是这个东东,所有this.什么,就是对象的什么,我是这样理解的
回复 使用道具 举报
this代表当前对象的引用,就是当前对象的地址值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马