java小问题 帮忙解释 在equals()中this 是指??? 当前对象是谁???
classPerson{privateintage;privateStringname;Person(Stringname,intage){this.name=name;...
class Person
{
private int age;
private String name;
Person(String name,int age){
this.name=name;
this.age=age;
}
public boolean equals(Object obj){
boolean t=true;
if(obj==this){//this代表的是谁??
return t=true;
}
if(obj instanceof Person){
Person p=(Person)obj;
if(p.name.equals(this.name)&&p.age==this.age){
return t=true;
}else{
return t=false;
}
}
return t;
}
}
public class Demo15
{
public static void main(String [] args){
Person p1=new Person("ton",10);
Person p2=new Person("ton",10);
System.out.println(p1.equals(p2));
}
} 展开
{
private int age;
private String name;
Person(String name,int age){
this.name=name;
this.age=age;
}
public boolean equals(Object obj){
boolean t=true;
if(obj==this){//this代表的是谁??
return t=true;
}
if(obj instanceof Person){
Person p=(Person)obj;
if(p.name.equals(this.name)&&p.age==this.age){
return t=true;
}else{
return t=false;
}
}
return t;
}
}
public class Demo15
{
public static void main(String [] args){
Person p1=new Person("ton",10);
Person p2=new Person("ton",10);
System.out.println(p1.equals(p2));
}
} 展开
3个回答
2011-10-31
展开全部
就是调用这个方法的对象,如p1.equals(p2)),this指的就是p1 ,用this提高代码的可复用性
追问
恩 恩 我知道 但是为什么this不能用p1替换掉??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本类的当前实例。 具体到你的main函数里就是p1
追问
那为什么 不能把this换成p1??呢
追答
当然不行,p1的作用域只在main函数中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询