• 技术文章 >Java >java教程

    Java中Object类的方法分析

    巴扎黑巴扎黑2017-04-15 09:06:14原创851
    声明

    文章均为本人技术笔记,转载请注明出处https://segmentfault.com/u/yzwall

    Object类简介

    Object类是所有类的父类,在Java中只有基本数据类型不是对象。对于所有数组类型(对象类型&&基本数据类型数组)都继承于Object类;

    equals方法

    Object类中通过判断两个对象是否具有相同引用,从而判断两个对象是否相同;
    子类只要重写equals方法,就必须重写hashCode方法

    // in java.lang.Object
    public boolean equals(Object obj) {
        return (this == obj);
    }

    重写equals方法原则:

    重写equals方法示例

    class myObject {
        private String name;
        private int age;
        ...
        public getName() {
            return this.name;
        }
        public getAge() {
            return this.age;
        }
    }
    
    /**
     * 重写equals方法demo步骤
     * Effective Java中推荐方式
     */
    public boolean equals(Object x) {
        // 1. 检查x和this是否引用同一个对象
        if (x == this) {
            return true;
        }
        
        // 2. 检查x对象类型是否是myObject派生
        if (!(x instanceof myObject)) {
            return false;
        }
    
        // 3. 比较数据域
        // 经过1,2检查,将参数转换为正确类型
        myObject o = (myObject)(x);
        return this.name.equals(x.getName()) && this.age == (x.getAge());
    }

    hashCode()方法

    hashCode方法返回对象的散列码,相等对象必须返回相等的hashCode,不同对象的hashCode尽可能不相等

    // in java.lang.Object
    public native int hashCode();

    重写equals时总要重写hashCode

    toString()方法

    Object类中toString方法,输出对象的“对象类名@散列码”;


    Java Object类方法分析


    声明

    文章均为本人技术笔记,转载请注明出处https://segmentfault.com/u/yzwall

    Object类简介

    Object类是所有类的父类,在Java中只有基本数据类型不是对象。对于所有数组类型(对象类型&&基本数据类型数组)都继承于Object类;

    equals方法

    Object类中通过判断两个对象是否具有相同引用,从而判断两个对象是否相同;
    子类只要重写equals方法,就必须重写hashCode方法

    // in java.lang.Object
    public boolean equals(Object obj) {
        return (this == obj);
    }

    重写equals方法原则:

    重写equals方法示例

    class myObject {
        private String name;
        private int age;
        ...
        public getName() {
            return this.name;
        }
        public getAge() {
            return this.age;
        }
    }
    
    /**
     * 重写equals方法demo步骤
     * Effective Java中推荐方式
     */
    public boolean equals(Object x) {
        // 1. 检查x和this是否引用同一个对象
        if (x == this) {
            return true;
        }
        
        // 2. 检查x对象类型是否是myObject派生
        if (!(x instanceof myObject)) {
            return false;
        }
    
        // 3. 比较数据域
        // 经过1,2检查,将参数转换为正确类型
        myObject o = (myObject)(x);
        return this.name.equals(x.getName()) && this.age == (x.getAge());
    }

    hashCode()方法

    hashCode方法返回对象的散列码,相等对象必须返回相等的hashCode,不同对象的hashCode尽可能不相等

    // in java.lang.Object
    public native int hashCode();

    重写equals时总要重写hashCode

    toString()方法

    Object类中toString方法,输出对象的“对象类名@散列码”;

    以上就是Java中Object类的方法分析的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:有关Java线程同步 下一篇:java中JFinal getModel方法和数据库使用出现问题的实例详解
    PHP编程就业班

    相关文章推荐

    • 详细介绍23种Java常见设计模式• 实例详解Java反序列化之反射机制• 五种方法!Java创建多线程总结• Java基础之类和对象、单例模式、继承• JAVA-5NIO之Selector

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网