黑马程序员技术交流社区

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

作者: 黑白小調°    时间: 2014-1-11 23:41
标题: this关键字
本帖最后由 黑白小調° 于 2014-1-14 08:13 编辑

这里的this分别代表什么呢?P1、P2代表什么呢?
class person
{
        private String name;
        private int age;
        Person(int age)
        {
                this.age=age;
        }
        Person(String name)
        {
                this.name=name;
        }
        Person (String name,int age)
        {
                this.name=name;
                this.age=age;
        }
        public void speak()
        {
                System.out.println("name="+name+"...age="+this.age);
                        this.show;
        }
        public void show()
        {
                System.out.println(this.name);
        }
        public boolean compare(person P)
        {
                return this.age==P.age;
        }
}
        class personDemo
        {
                public static void main(String[]args)
                {
                        Person P1=new Person(20);
                        Person P2=new Person(25);
                        boolean b=P1compare(P2);
                        System.out.println(b);
                }
               
        }
作者: november    时间: 2014-1-11 23:51
this 代表当前对象, Person P1=new Person(20);  在堆中创建时 这个 this 代表着 p1  Person P2=new Person(25);这时 this 就代表着P2,this 就是代表着 堆中的对象(地址值)
作者: xu6148152    时间: 2014-1-12 00:26
所有的面向对象语言都是一样的。
this表示的是当前的对象。指向当前对象的地址。
p1,p2对象的实例。他们各自有各自的this指针。
作者: ↑↓ME→←    时间: 2014-1-12 09:11
this表示调用该方法或属性的类的对象,P1 是年龄为20的Person的对象,P2是年龄为25的Person的对象,P1.compare(P2)比较年龄是否相等,所以返回false。
作者: 贺利英    时间: 2014-1-12 09:49
注意,一定要高清楚this代表的是本类对象的,那么此类可以创建好多对象,到底代表哪一个呢,这就要看是哪个对象在调用this所在的函数,哪个对象在调用this所在的函数,这个this就代表哪个对象的。而P1、P2是此类的对象,并且此P1、P2存放的是Person对象的内存空间地址值。若P1调用了this所在的函数,则this就代表P1此对象,若P2调用了此this所在的函数,则this就代表对象P2.
作者: 孤独的天奇    时间: 2014-1-12 13:12
谁用了new 创建对象 ,这个this就指的是谁
作者: 郭高伟    时间: 2014-1-12 13:54
this是指当前你调用类的对象, p1和p2是对象的实例。在构建p1时,this就是p1的类的对象,在构建p2时,this就是构建p2的类的对象,p1和p2是在栈中存放,new出来的Person对象是在堆中存放的,p1存放的是Person(20)在堆中的地址,p2存放的是Person(25)在堆中的地址。

作者: app297    时间: 2014-1-12 16:51
简单的说吗,你这里p1 代表的是由Person产生的一个对象,this 就代表P1本身。




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