黑马程序员技术交流社区
标题:
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