源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Java中父类Object的常用方法总结

  • 时间:2020-04-01 09:27 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java中父类Object的常用方法总结
[b]简介 [/b] Object类: 这个类[code]java.lang.java[/code]是所有类默认继承的父类 Object类中常用的三个方法:[code]toString()[/code] ,[code] equal() [/code], [code]hashCode()[/code] [b]一、toString()方法 对象的自我描述,对象的自我介绍[/b] 在对象的自我描述过程中,由于使用[code]get()[/code]方法打印实例变量比较麻烦,为了简便,使用[code]toString() [/code].
Public String toString(){


Return “学好” + getNo() + “姓名” + getName();

}
[code]System.out.println(s); [/code]就相当于 [code]System.out.println(s.toString());[/code] 在打印:     a.基本数据类型时 直接打印 其数值     b.引用数据类型时 调用[code]toString() [/code]在打印 若没有重写Object类中的[code]toString()[/code]方法时,直接打印对象,在控制台得出的结果是: 包全名@对象的hashCode [b]二、equals()方法 重写equals()一定要重写hashCode(),[/b] [code]Equals()[/code]比较的是两个对象,或者两个对象的内容;[code]hashCode() [/code]是对象的内部地址,是一个整数。 [b]==与equals()的区别?[/b] 答:==实质比较的是二进制,基本数据类型比较的是数值,引用数据类型比较的 是地址 [code]Equals()[/code]分为Object类的[code]equals()[/code]和String类的[code]equals() [/code],Object类的[code]equals()[/code]相当于==比较引用类型情况;String类的[code]equals()[/code]重写啦Object类中的[code]equals()[/code]方法,比较的是字面值。 Instanceof判断类名,或者可能使用反射 对象的引用变量名 instanceof 类名 这个表达式,如果对象的引用变量名是 后面类名的类或者基类对象其返回值任然是true. 自定义[code]equals()[/code]方法:      1.类型德相同      2.定义自己的比较规则
public boolean equals(Object object){ //重写Object的equals()方法

EqualsTest equalsTest = (EqualsTest) object;

if(equalsTest.getClass() == EqualsTest.class){ //???????????

if((this.name==equalsTest.name)&&(this.price== qualsTest.price)){

return true;

}else{

return false;

}

}else{

return false;

}

}
[b]三、hashCode()方法 用于加速查找,实现索引查找 (查询算法,存储算法)[/b]
Public int hashCode(){

Return this.name.hashCode()*13 + new Interger(getAge).hashCode()*12;

}
[b]hashCode的两个原则:[/b]      1.两个对象[code]equals()[/code]方法比较返回值为true时,那么他们的[code]hashCode()[/code]方法也要保证返回值相同。      2.对象中用[code]equals()[/code]来比较使用的属性,都应该用来计算[code]hashCode()[/code] 。 [b]hashCode() 哈希算法[/b] 需求:      1.[code]hashCode()[/code]返回值相同,[code]equals()[/code]返回值也一定要相同。      2.重写[code]hashCode()[/code]使用啦什么属性,在[code]equals()[/code]方法中也要使用什么属 性。 注:hashCode相同,equals不一定相同。 hashCode用于判断文件夹,equals用来判断文件。 如果不重写[code]hashCode()[/code]方法,默认的hashCode()方法是根据对象的地址求出来的(键值就是对象的地址) 如果重写啦[code]hashCode()[/code]方法就不能用来判断是不是同一个对象, 则可以使用[code]System.identityHashCode[/code](对象的引用名) 若hashCode相同,则为同一个对象。 [code]System.out.println(System.identityHashCode(对象的引用名));[/code] 如果没有[code]hashCode() [/code],其对象的hashCode是通过对象地址算出来的。 [code]System.out.println(对象引用名.hashCode());[/code] 注:HashSet集合中元素是否存在以及删除操作依赖的方法是元素的[code]hashCode()[/code]和[code]equals()[/code] [b]总结[/b] 以上就是为大家整理的Java中父类Object的三个常用方法,希望对大家能有所帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部