重写对象equals()和hashCode()方法

重写对象equals()和hashCode()方法

//hashcode
public int hashCode() {
        int result;
        result = getName ().hashCode();
        result= 18* result + getBirthday().hashCode();
        result= 18* result + getAge();
        return result;
        }

//equals())方法

public boolean equals(Object obj) {
		//如果相同,返回true;如果obj为空,则false
		if(this == obj) return true;
		if(obj == null) return false;
		if(!(obj instanceof User)) {return false;}
	}
	//强转
	User other  =  (User)obj;
	if(id!=other.id) {
		return false;
	}
	if(age!=other.age) {
		return false;
	}
	//注意name是字符串,前提是name不为空,以下方法都重写了
	if(!name.equals(other.name)){
		return false;
	}
	if(!gender.equals(other.gender)){
		return false;
	}
	if(!birthday.equals(other.birthday)){
		return false;
	}

测试


try{
        sf =HibernateUtil.getSessionFactory();//sessionFactory单态模式
    session = sf.getCurrentSession();//保证每个读写线程有唯一的session的实例
    ts = session.beginTransaction();
    
    String a = "abc";
    String b ="abc";
    
    System.out.println(a == b);
    System.out.println(a.equals(b));
    
    String c = "pq";
    String d ="pq";
    
    System.out.println(c == d);
    System.out.println(c.equals(d));
    
    ts.commit();

结果是:
true true false true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值