Object类—所有类的父类:
常用的四个方法:
1.getClass():返回对象执行的class实例
2.toString():将对象返回为字符串形式
3.hashCode():用来比较两个对象是否相等
4.equals():用来比较两个对象是否相等
覆盖Object中的toString()方法:
格式:public String toString(){
return str;//返回值为字符串
}
设计依据:
1如果输出对象的时候,想要看哪些属性的值,就可以将属性拼接在return后面
2.要保证拼接后的结果为String类型
3.拼接的格式自定义
覆盖hashCode()方法:
hashCode():返回该对象的哈希码值
注意:hashCode():方法自动调用,无需手动调用
如果有toString()方法时,hashCode()不会自动调用
覆盖hashCode()方法的设计依据
1.尽量使用到对象的属性
2.保证最终的返回值类型为int类型,return后面的结果为int类型
3.返回结果自定义
Java对于hashCode()和equals()方法的对象的比较:
如果两个对象相同,那么他们的hashCode值一定相同
如果两个对象的hashCode值相同,两个对象并不一定相同
覆盖equals()方法的意义:
改变父类对象的比较规则(父类对象的比较规则为 “==” )
this:当前对象
public boolean equals(Object obj){
if(obj == null){
return false;
}
if(this == obj){
return true;
}
if(obj instanceof Class){
//将obj转化为Class类型(自己定义的实体类)
Class c = (Class)obj;
//自定义比较规则
boolean flag = this.num.equals(Class.obj);
return flag;
}
return false;
}
```java
此代码中,Class为自己定义的实体类,num表示自己想要比较的东西
可对比equals的原码进行理解