Topic: 奇怪,关于equals方法的一个例子 |
Print this page |
1.奇怪,关于equals方法的一个例子 | Copy to clipboard |
Posted by: glq2000 Posted on: 2006-11-04 09:00 我写了一个关于equals方法的的例子,我的疑问是如果Student类没有重写父类Object中的equals方法而直接使用它时 ,为什么在该返回true时也返回false呢 ?谢谢 class Student { private String name; private int age; public Student(String name,int age) { this.name=name; this.age=age; } public boolean equals(Object obj)//如果不重写Object父类中的equals方法的话,则总是返回false; { Student st=null; if(obj instanceof Student) { st=(Student)obj; if(st.name==name&&st.age==age) return true; else return false; } else return false; } public static void main(String [] args) { Student st1=new Student("wangwu",20); Student st2=new Student("wangwu",20); if(st1.equals(st2))//假设上面没有重写equals方法,则总是返回false;为什么会这样呢?? System.out.println("equals"); else System.out.println("not equals"); } } |
2.Re:奇怪,关于equals方法的一个例子 [Re: glq2000] | Copy to clipboard |
Posted by: ranchgirl Posted on: 2006-11-04 09:44 Read the source code Object.java, please!!!! Thanks! |
3.Re:奇怪,关于equals方法的一个例子 [Re: glq2000] | Copy to clipboard |
Posted by: zhangwensheng Posted on: 2006-11-07 13:19 st1和st2是类Student的两个不同实例,怎么会相等呢! |
4.Re:奇怪,关于equals方法的一个例子 [Re: glq2000] | Copy to clipboard |
Posted by: bd0571 Posted on: 2006-11-13 19:31 每次new一个对象返回的只是一个引用变量,它指向这个对象,但它并不是这个对象。 public boolean equals(Object obj) { return (this == obj); } 这是没有重写时候调用的方法,不同的对象是不可能返回true的。 |
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 |