黑马程序员技术交流社区
标题:
return这句话没有明白是什么意思
[打印本页]
作者:
妖妖
时间:
2015-3-29 10:15
标题:
return这句话没有明白是什么意思
public boolean equals(Object obj)
{
if (!obj instanceof Person)
{
return false;
}
Person p=(Person)obj;
return this.name.equals(p.name)&&this.age==p.age;
}
return this.name.equals(p.name)&&this.age==p.age;没有明白是什么意思,请大神详细讲解,谢谢啦
作者:
妖妖
时间:
2015-3-29 10:21
(楼主)这里的这个equals是说是所指的的字符串一样,是为什么,equals()比较的不是地址值是否一样吗,既然是两个new来的对象就会有两个不同的地址值,这里是怎样重写equals,让他们比较的是字符串相同的?不理解啊!!!
作者:
关山明月
时间:
2015-3-29 10:37
this.name 是String类型,而String类重写了equals方法,比较的是字符串的内容,不再是地址值。
作者:
翰墨
时间:
2015-3-29 10:49
首先楼主定义的方法equals(Object obj)返回值是boolean类型,因此return返回值是boolean类型
其次return this.name.equals(p.name)&&this.age==p.age;这句话的意思是当要比较的对象的名字、年龄和调用equals方法对象的名字、年龄都相同时返回true,否则返回false。
Person p=(Person)obj; 要调用人特有功能,强制将父类Object引用转成Person类型 向下转型
this.name.equals(p.name) String类复写了Object类中的equals方法,用于比较两个字符串是否相等。
作者:
自学小番薯
时间:
2015-3-29 10:58
同有疑惑 进来看下
作者:
lwj123
时间:
2015-3-29 11:25
return this.name.equals(p.name)&&this.age==p.age;
比较两个对象的name属性和age属性是否相等。
&&是两者都要同时成立。
作者:
zmhlnrs
时间:
2015-3-29 11:47
return this.name.equals(p.name)&&this.age==p.age;
这里的equals是调用String类中的方法,String类中已经重写了equals方法 所以比较的不是地址值
&&这个符号是短路与必须要满足两边的条件才返回true,
作者:
@G00DMaN
时间:
2015-3-29 12:57
加油加油
作者:
Dark县令
时间:
2015-3-29 23:23
比较姓名和年龄。
作者:
SunshineCui
时间:
2015-3-29 23:46
来看看大牛的解释,学习下
作者:
Grady
时间:
2015-3-30 00:11
{一个是String类--引用类型,但是重写了equals方法,一个是int类--基本数据类型}----两者都是比较的数值。上课好好听讲,多做做笔记哈。
作者:
和谐木马
时间:
2015-3-30 00:13
return this.name.equals(p.name)&&this.age==p.age;这里面的这个equals是调用的String类的equals()方法,你查下API里,就知道String复写了equals()方法的,它返回值也是boolean类型的,相同返回true。后面==表达式返回的也是个boolean类型的,所以用&&相连后返回也是boolean类型的。
所以这里就是比较名字要相同,同时年龄要相等时返回ture。
作者:
尚巾仁杰
时间:
2015-3-30 00:19
this.name.equals(p.name) && this.age==p.age;
逻辑运算符&& 和 比较运算符==的使用。
equals方法是重写了Object类中的方法,Person中这个方法是用来比较两个对象的名字,名字是String类型的,是对象,调用equals方法。而age年龄是int型的,是基本数据类型,直接使用比较运算符==比较。
作者:
liyanghml
时间:
2015-3-30 00:27
意思就是 name和name比较的结果(真或假)与上age和age的比较结果;
作者:
zhy934453950
时间:
2015-3-30 06:09
return是返回函数值
作者:
罗晓飞
时间:
2015-3-30 08:32
return 结果;
作者:
天马行空_黑马
时间:
2015-3-30 10:32
return this.name.equals(p.name)&&this.age==p.age
里面的this表示引用该方法的对象,那this.age和p.age究竟是哪两个对象的比较?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2