• 技术文章 >Java >java教程

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

    高洛峰高洛峰2017-01-17 16:56:39原创545
    简介

    Object类: 这个类java.lang.java是所有类默认继承的父类

    Object类中常用的三个方法:toString() , equal() , hashCode()

    一、toString()方法 对象的自我描述,对象的自我介绍

    在对象的自我描述过程中,由于使用get()方法打印实例变量比较麻烦,为了简便,使用toString() .

    Public String toString(){
     
     
    Return “学好” + getNo() + “姓名” + getName();
     
    }


    System.out.println(s); 就相当于 System.out.println(s.toString());

    在打印:

    a.基本数据类型时 直接打印 其数值

    b.引用数据类型时 调用toString() 在打印

    若没有重写Object类中的toString()方法时,直接打印对象,在控制台得出的结果是:

    包全名@对象的hashCode

    二、equals()方法 重写equals()一定要重写hashCode(),

    Equals()比较的是两个对象,或者两个对象的内容;hashCode() 是对象的内部地址,是一个整数。

    ==与equals()的区别?

    答:==实质比较的是二进制,基本数据类型比较的是数值,引用数据类型比较的 是地址

    Equals()分为Object类的equals()和String类的equals() ,Object类的equals()相当于==比较引用类型情况;String类的equals()重写啦Object类中的equals()方法,比较的是字面值。

    Instanceof判断类名,或者可能使用反射

    对象的引用变量名 instanceof 类名 这个表达式,如果对象的引用变量名是 后面类名的类或者基类对象其返回值任然是true.

    自定义equals()方法:

    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;
     
    }
     
    }


    三、hashCode()方法 用于加速查找,实现索引查找 (查询算法,存储算法)

    Public int hashCode(){
     
    Return this.name.hashCode()*13 + new Interger(getAge).hashCode()*12;
     
    }


    hashCode的两个原则:

    1.两个对象equals()方法比较返回值为true时,那么他们的hashCode()方法也要保证返回值相同。

    2.对象中用equals()来比较使用的属性,都应该用来计算hashCode() 。

    hashCode() 哈希算法

    需求:

    1.hashCode()返回值相同,equals()返回值也一定要相同。

    2.重写hashCode()使用啦什么属性,在equals()方法中也要使用什么属 性。

    注:hashCode相同,equals不一定相同。

    hashCode用于判断文件夹,equals用来判断文件。

    如果不重写hashCode()方法,默认的hashCode()方法是根据对象的地址求出来的(键值就是对象的地址)

    如果重写啦hashCode()方法就不能用来判断是不是同一个对象,

    则可以使用System.identityHashCode(对象的引用名) 若hashCode相同,则为同一个对象。

    System.out.println(System.identityHashCode(对象的引用名));

    如果没有hashCode() ,其对象的hashCode是通过对象地址算出来的。

    System.out.println(对象引用名.hashCode());

    注:HashSet集合中元素是否存在以及删除操作依赖的方法是元素的hashCode()和equals()

    总结

    以上就是为大家整理的Java中父类Object的三个常用方法,希望对大家能有所帮助,如果有疑问大家可以留言交流,谢谢大家对PHP中文网的支持。

    更多Java中父类Object的常用方法总结相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java object
    上一篇:java object 之clone方法全面解析 下一篇:java基础之Object类
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 实例详解Java基础的控制语句• Java集合框架之PriorityQueue优先级队列• 一起来聊聊与Java中性能相关的设计模式• JAVA外观模式详解• Java图文详解之实现图书管理系统
    1/1

    PHP中文网