重写equals和hasCode 方法 JDK1.7

阅读: 评论:0

重写equals和hasCode 方法 JDK1.7

重写equals和hasCode 方法 JDK1.7



import java.io.Serializable;
import java.util.Objects;
/**
 * 联合主键类 必须实现Serializable接口
 * 重新equals()和hasCode()方法
 * 
 * @author wxl
 *
 */
public class ScoreId implements Serializable{
/**

*/
private static final long serialVersionUID = 1L;
private int stuId; //学生id
private int subjectId;//科目编号
public int getStuId() {
return stuId;
}
public void setStuId(int stuId) {
this.stuId = stuId;
}
public int getSubjectId() {
return subjectId;
}
public void setSubjectId(int subjectId) {
this.subjectId = subjectId;
}
/**
* 重新hashCode方法
*/
@Override
public int hashCode() {
return Objects.hash(stuId,subjectId);
}
/**
* 重写Object的equals方法

* java核心技术 第九版
* page 171

* 1.显示参数命名为otherObj,方法中需要将它转换成另一个叫做other的变量
*/
@Override
public boolean equals(Object otherObj) {
//2. 检查 this和otherObj是否指向同一个对象 优化语句
if(this == otherObj) { return true;}
//3. 检测otherObj是否为空 如果为null 返回false
if(otherObj == null) { return false;}
//4. 比较this 和 otherObj 是否属于同一个类,不是返回false
//如果equals 的语义在每个子类中有所改变,就使用getClass检查
if(getClass() != Class()) { return false;}
//如果所有的子类都拥有统一的语义,就是使用instanceof 检查
if(!(otherObj instanceof ScoreId)) { return false;}
//5. 将otherObj转化成相应的类类型变量
ScoreId other = (ScoreId) otherObj;
   //6. 开始对所有的属性进行比较,使用 == 比较基本类型属性,
// 使用equals 比较对象属性,如果所有的属性都匹配返回true,否则返回false
return stuId == other.stuId 
&& this.subjectId == other.subjectId;
}


}

本文发布于:2024-02-02 18:51:57,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170687111845753.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:重写   方法   hasCode   equals
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23