equals,hashCode

  • equals、hashCode 快捷方式仅一次有效,后面要自己手敲
  • 小转大 自动转换,大转小 强制转换

  (要转换的类型)转换

1、equals


     Object中的 判断相等方法
判断

2、hashcode


    哈希码值
    

3、案例

package com.zking.qiao;

/**
 * equals : Object中的 判断相等方法
 * @author Administrator
 *
 *注意:
 *1.方法名不能相同
 *2.equals、hashCode 快捷方式仅一次有效,后面要自己手敲
 *3.小转大 自动转换,大转小 强制转换
 */
public class Student {
	private int sid;
	private String name;
	private String sex;
	//构造有参
	public Student(int sid, String name, String sex) {
		super();
		this.sid = sid;
		this.name = name;
		this.sex = sex;
	}
	//封装
	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	
	//重写equals 
	//只要学号相同,就返回 true
	public boolean equals(Object obj) {
		//参数大转小: Object 强转为 Student
		Student stu = (Student)obj;
		if(this.getSid()==stu.getSid()) {
			return true;
		}else{
			return false;
		}
	}
	//重载 equals 无需强转
	//学号,姓名,性别都相同,才返回true
	public boolean equals(Student s) {
		if(s.getSid()==sid && s.getName().equals(name) && s.getSex().equals(sex)) {
			return true;
		}else {
			return false;
		}
	}
	
	
	//重写 hashCode 返回学号+100
	public int hashCode() {
		return sid+100;
	}
		//返回 学号+姓名的哈希码+性别的哈希码
	public int hashCode1() {
		return sid+name.hashCode()+sex.hashCode();
	}
	
	//toString
	@Override
	public String toString() {
		return "Student [sid=" + sid + ", name=" + name + ", sex=" + sex + "]";
	}
	
}
package com.zking.qiao;

/**
 * 知识点:
 * 1、封装:private
 * 2、继承:extends
 * 3、多态:一个对象多种心态,父类可以代表子类
 * 4、重写:继承关系下,子类与父类中的方法名相同,返回值类型相同,参数列表相同
 *    重载:同类中,方法名相同,返回值类型不同,参数列表可同可不同
 * @author Administrator
 *
 */
public class Test {
	public static void main(String[] args) {
		
		//创建 学生对象
		Student s = new Student(1,"了了","女");
		Student ss = new Student(1,"好好","男");	
		Student s1 = new Student(1,"了了","女");
		
		//equals 相等比较
		boolean b = s.equals(ss);
		System.out.println(b);
		boolean f = s.equals(s1);
		System.out.println(f);
		
		//hashCode 哈希码值
		System.out.println(s.hashCode());
		System.out.println(ss.hashCode1());
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youdabi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值