黑马程序员技术交流社区
标题:
谁能帮忙举一个equals()被复写掉之前的例子呢?
[打印本页]
作者:
马超
时间:
2012-5-25 17:51
标题:
谁能帮忙举一个equals()被复写掉之前的例子呢?
s1在内存中有一个对象,s2在内存中有两个对象
equals()方法:复写之前是比较两个对象的引用是不是一样的,功能和 “==” 一样一样的
复写之后是比较两个对象的中在推内存当中存储的内容是否是一样的
代码示例:
String s1 = "abc"; //只要对象一样 就指向的是同一个对象 而不再另开辟新的对象
String s2 = "abc";
if(s1 == s2) 打印输出 true;
if(s1.equals(s2)) 打印输出 true;
问题:谁能帮忙举一个equals()被复写掉之前的例子呢?
作者:
xieshuhua
时间:
2012-5-25 18:05
本帖最后由 谢述华 于 2012-5-25 18:06 编辑
普通类的实例都是没有覆写equals方法的,如下所示:
class cw
{
public static void main(String[] args)
{
equalsDem int1=new equalsDem(1);
equalsDem int2=new equalsDem(1);
System.out.println(int1);
System.out.println(int2);
System.out.println(int1.equals(int2));
}
}
class equalsDem{
int x;
equalsDem (int x){
this.x=x;
}
}
复制代码
可以看到没有覆写toString和equals方法的效果。都是带有存储地址和类名等信息的。希望能够帮到你~~
运行效果.png
(2.58 KB, 下载次数: 46)
下载附件
2012-5-25 18:04 上传
作者:
小小企鹅
时间:
2012-5-25 18:28
Object e = new Object();
System.out.println(e == e + "," + e.equals(e));
Object c = new Object();
System.out.println(e == c + "," + e.equals(c));
作者:
揭耀祖
时间:
2012-5-25 18:59
上帝Object就有这个方法。
== 是比较两个对象的地址值是否相等;
equals()是比较两个对象的内容是事否相等;
String a = new String("abc");
String b = "abc";
System.out.println(a==b); //输出false;
System.out.println(a.equals(b));//输出true;
你要看equals()被复写之前的样子,那么你就去看Object的equals()吧,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2