zoukankan      html  css  js  c++  java
  • 8.认识Object类

    1. 什么是Object类
      1. 类层次结构的根类
      2. 所有类都直接或间接继承自该类
    2. 它的常用属性与方法
      1. finalize():回收对象时调用此方法
        protected void finalize()
        throws Throwable
        {}

      2. getClass():获取对象字节码描述类
        public final native Class<?> getClass();

      3. hashCode():获取对象哈希值,实际是对象在内存十进制的表示

      4. toString():返回对象字符串表示形式
        public String toString()
        {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());//转换成16进制表示
        }
        当然这种输出意义不大,通常会重写此方法,让他输出类成员信息

      5. equals(Object paramObj):比较两个对象内存地址是否相等,底层是用判断的
        public boolean equals(Object paramObject)
        {
        return this == paramObject;
        }
        一般会重写equals方法,不然与
        无区分
        1.字符串重写此方法后:用于判断两字符串内容是否相同
        public boolean equals(Object paramObject)
        {
        if (this == paramObject) {
        return true;
        }
        if ((paramObject instanceof String))
        {
        String str = (String)paramObject;
        int i = value.length;
        if (i == value.length)
        {
        char[] arrayOfChar1 = value;
        char[] arrayOfChar2 = value;
        for (int j = 0; i-- != 0; j++) {
        if (arrayOfChar1[j] != arrayOfChar2[j]) {
        return false;
        }
        }
        return true;
        }
        }
        2.对象重写equals方法,可按值比较
        /**
        * 按 value 比较
        */
        @Override
        public boolean equals(Object obj) {
        if (this == obj)
        return true;
        if (obj == null)
        return false;
        if (getClass() != obj.getClass())
        return false;
        EnumEmergencyPlanLevel other = (EnumEmergencyPlanLevel) obj;
        if (value == null) {
        if (other.value != null)
        return false;
        } else if (!value.equals(other.value))
        return false;
        return true;
        }

      6. equals()与==的区别

        1. 前者只能比较引用数据类型
        2. 前者可以根据需要重写
        3. 后者比较值类型时,比较的值是否相同
        4. 后者比较引用数据类型时:比较的是内存地址是否相同(即是否是同一对象)
  • 相关阅读:
    使用select2插件并添加拼音首字母检索
    sql id 或使用nolock
    .net 开源组件
    EF 创建数据库的策略 codefist加快效率!【not oringin!】
    个人拾遗!数组的拷贝等
    编程拾遗:集合类型的函数,返回值,如果没有,就返回默认集合new,或者 default(T)好一些。
    C# datatable to list
    npoi导出excel 导出List<T>
    display:inline、block、inline-block的区别 摘】
    ie下,jquery为动态添加的节点添加事件,用live
  • 原文地址:https://www.cnblogs.com/River111/p/9593223.html
Copyright © 2011-2022 走看看