A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冷锋也温柔 中级黑马   /  2014-9-10 17:17  /  1750 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

遇到一个很郁闷的问题  本来以为很简单的
class person{
        public static void main(String[] args) {
                celient c =new celient();
                c.setName("jake");
                c.setAge(43);
                celient c1 =new celient();
                c.setName("jake");
                c.setAge(43);
                celient c2 =new celient();
                c.setName("mark");
                c.setAge(39);
                System.out.println(c.equals(c1));false这个应该true啊,运行后为false 求解释
                System.out.println(c.equals(c2));false
                System.out.println(c1.equals(c2));true这个应该false,运行后为true 求解释
        }
}

图片.JPG (120.32 KB, 下载次数: 5)

求大神指教

求大神指教

13 个回复

倒序浏览
你用的从Object继承下来的equals方法,当然是这个结果,Object又不知道你想要比姓名、年龄。
回复 使用道具 举报
bullfrog 发表于 2014-9-10 17:19
你用的从Object继承下来的equals方法,当然是这个结果,Object又不知道你想要比姓名、年龄。 ...

我重写equas hashcold方法了啊    应该c和c1相同      c1和c2的地址值及内容都不同  怎么能true呢
回复 使用道具 举报
知道了,你一直设置 c 的属性,c1, c2都没动过
回复 使用道具 举报
一直都是c.setXX。。。
回复 使用道具 举报
一直是c
回复 使用道具 举报
你一直在重新向方法里面传送的是c对象啊 我也是醉了
回复 使用道具 举报
好多C啊,多C多健康
回复 使用道具 举报
复写equals 方法,如果复写了,就检查复写的是否正确
回复 使用道具 举报
这么多c,你让c1,c2情何以堪
回复 使用道具 举报
偶哈哈,小细节,隐藏的好深
回复 使用道具 举报
经楼上提醒才发现,以后要多注意细节啊
回复 使用道具 举报
  最后一个 为什么会是 true 呢。。话说 能把另一个 celient 贴出来么
回复 使用道具 举报
哥们喝酒了?一直都是c.啊,没动c1和c2啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马