Topic: 请教关于equals()的问题 _一个小程序[app] |
Print this page |
1.请教关于equals()的问题 _一个小程序[app] | Copy to clipboard |
Posted by: xiaotuo Posted on: 2004-08-13 17:05 c01: public class Equi{ public static void main(String[] args){ Integer n1=new Integer(1); Integer n2=new Integer(1); System.out.println(n1.equals(n2)); } } c02: class Value{ int i; } public class Equi{ public static void main(String[] args){ Value n1=new Value(); Value n2=new Value(); n1.i=n2.i=1; System.out.println(n1.equals(n2)); } } 为什么c01输出的结果为true,而c02输出的结果为false. |
2.Re:请教关于equals()的问题 _一个小程序[app] [Re: xiaotuo] | Copy to clipboard |
Posted by: href Posted on: 2004-08-16 11:24 c02中你没有实现equals方法 所以你调用的n1.equals(n2)的equals方法是继承自java.lang.Object的euqals方法,这个默认的方法只比较两个Object是不是同一个,而不是比较里面的成员变量是不是一样。 就像你拿两个同牌子同型号的键盘来,看起来是一抹一样,但本质上不属于同一个东西,所以不equale |
3.Re:请教关于equals()的问题 _一个小程序[app] [Re: xiaotuo] | Copy to clipboard |
Posted by: xiaotuo Posted on: 2004-08-18 16:50 也就是说,在c01中,equals方法比较的是成员变量值,而在c02中比较的是object reference.但是,我们又该怎么区别当equals方法在使用时,它究竟是比较成员变量值还是object?其究竟有没有实现equals方法呢?? 谢谢!!! |
4.Re:请教关于equals()的问题 _一个小程序[app] [Re: xiaotuo] | Copy to clipboard |
Posted by: href Posted on: 2004-08-23 15:23 啊,那得去看你所要比较的两个object的class源代码了 看里面的equals方法是怎么实现的。 因为即使实现了equals方法也不能肯定的说是比较成员变量啊。 要看具体代码的实现。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |