黑马程序员技术交流社区
标题:
怎样重写equals方法?
[打印本页]
作者:
yijian2033
时间:
2015-6-14 20:39
标题:
怎样重写equals方法?
我想调用equals()方法来比较两个对象 的成员变量是否相同,但是重写完全不知道怎样开始、、、、、、、、、、、、、、、、、、、、、、、、、
作者:
周周
时间:
2015-6-14 22:40
在要插入equals()的地方右键-->source-->Generate hashCode()andequals()... 然后就自动生成了,删掉不要的hash就行。下面是代码
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
复制代码
作者:
安安安
时间:
2015-6-14 23:15
1.记住开头怎么写,equals只能传Object不能用泛型
public boolean equals(Object obj)
2.判断obj是否属于需要比较的类,如果不是返回false
if(!(obj instanceof Student))
return false;
3.把obj转换成需要比较的类的类型
Student s=(Student)obj;
4.比较成员变量,可以用equals比较字符串,==比较数字之类的。
当然用MYECLIPSE直接插入equals最省事了。。
作者:
heima591046495
时间:
2015-6-14 23:25
大神好多,,涨姿势了.
作者:
腹黑生姜
时间:
2015-6-14 23:41
学到了知识
作者:
candy_xue
时间:
2015-6-14 23:57
还没学到这里
作者:
qian0217wei
时间:
2015-6-15 00:19
public boolean equals(Object obj)
{
if(!(obj instanceof Teacher))
{
return false;
}
Teacher t = (Teacher)obj;
return this.name.equals(t.name)&&t.name ==this.name;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2