| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 915 人关注过本帖
标题:请问这个程序结果为什么是false
只看楼主 加入收藏
parid
Rank: 2
等 级:论坛游民
帖 子:20
专家分:20
注 册:2009-4-26
结帖率:60%
收藏
 问题点数:0 回复次数:5 
请问这个程序结果为什么是false
class M
{
    String name;
    int age;
    M(String name,int age)
    {
        this.name = name;
        this.age = age;
    }
};

public class eg1
{
    public static void main(String args[])
    {
        M m = new M("abc",23);
        M n = new M("abc",23);
        System.out.println(m.equals(n));
    }
}
equals不是用于比较内容的吗?这两个类的内容不是一样吗?
搜索更多相关主题的帖子: public age abc equals false 
2012-06-09 17:42
xiaoyuyou
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-6-11
收藏
得分:0 
equals是用来比较字符串的内容的
2012-06-11 00:53
a81620313
Rank: 1
等 级:等待验证会员
帖 子:4
专家分:0
注 册:2012-6-11
收藏
得分:0 
虽然创建两个值相同的对象,但是在栈中创建了两个地址不同的引用,equals比较的是两个对象引用,引用所存放的地址不同,所以结果为false
2012-06-11 21:50
别时茫茫
Rank: 2
来 自:安徽蚌埠
等 级:论坛游民
威 望:1
帖 子:29
专家分:72
注 册:2011-10-5
收藏
得分:0 
这个问题中,equals方法是从Object类中继承而来的,Object中的equals方法是比较两个对象的引用是不是相等,其实在实际中这个方法只要你继承了Object类而且要是用这个方法,就应该重写equals方法。

public boolean equals(Object m){
    M o= null;
    if(m instanceof M) o = (M)m;
    if(o != null){
    if(o.name.equals(name)&& age==o.age)
        return true;
    else
        return false;
    }
    return false;
    }
2012-07-14 20:46
gyw520gyw
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2010-11-29
收藏
得分:0 
equals  没有重写
m, n的内容分别在不同的内存空间,指向了不同的内存地址,equals比较时,实际上是调用了Object类中的equals方法,在用时需要重写。。。

public boolean equals(Object n){
    boolean temp = true;
    M m1 = this;
    if(n instanceof M){
        M m2 = (M)n;
        if(!(m1.name.equals(m2.name)&&m1.age == m2.age));{
            temp = false;
            }
        }else{
            temp = false;
        }  
        return temp;  
}
2012-07-14 21:06
haozhongjun
Rank: 1
等 级:新手上路
帖 子:2
专家分:7
注 册:2012-7-27
收藏
得分:0 
equals默认是比较引用内存地址的和==是一样的!!!你说的比较内容是因为String中重写了equals方法!
2012-07-27 17:21
快速回复:请问这个程序结果为什么是false
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017396 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved