我是靠谱客的博主 搞怪鱼,最近开发中收集的这篇文章主要介绍Object最高父类的方法应用 equals和toString,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述
**

一/ equals方法

**
最高父类’Object’中的方法’equals’可以对比对象之间的各种内容是否相同,比如判断两个对象的 内存地址(哈希值) / 属性 / 参数内容 是否相同一致.
但是在没有重写的情况下,Object的’equals’方法包含了对地址值的判断,如果地址值不相同就不再进行 属性 或 参数内容 的判断.
因此,如果需要判断两个对象之间的 属性 或 参数内容 是否一致,需要在对象所属的类(如infoObj和infoObjTwo相对于info)中通过自动生成代码来重写’equals’的方法.
自动生成代码的操作方式:快捷键 Alt+Insert → 单击’equelt() and hashCode()’ → 单击’Next’ → 单击’Next’ → 单击’Finish’ →(可选) 删除其中附带生成的的’hashCode()'方法

public boolean equals(Object o) {
   //对比两个对象的内存地址(哈希值)是否一致.默认为:假如否则直接返回结果并退出.
    if (this == o) return true;
    //对比两个对象的属性(即是通过同一个类创建的)是否一致.默认为:假如否则直接返回结果并退出.
    if (o == null || getClass() != o.getClass()) return false;
    //对比两个对象的参数内容(如'age'和'name')是否一致.
    info info = (info) o;
    return age == info.age &&
            Objects.equals(name, info.name);
}

------------------------------------------------------
public class mainMethod {
    public static void main(String[] args) {
        info infoObj = new info("中国",70);
        info infoObjTwo = new info("美国",205);

        //对比两个对象的 '内存地址(哈希值)' / '属性' / '参数内容'
        System.out.println(infoObj.equals(infoObjTwo));

    }
}

**

二/ toString方法

**
最高父类’Object’的’toString’方法默认是获取对象的所在包位置和内存地址值(哈希值),如果想要它获取的是对象的参数内容,
那么就需要通过自动生成代码,来重写最高父类’Object’里面的’toString’方法.
效果如下:
重写前:code.study.day03.toStringOverRide.Info@3f3afe78
重写后:Info{name=‘永不磨灭的青春’, age=1}
自动生成代码的操作方式:单击’Code’ → 单击’Generate’ → 单击’toString’ → 按要求选择成员变量(默认权限) → 单击OK
或 按Alt+Insert → 单击’toSting’ → 按要求选择成员变量(默认权限) → 单击OK

public class mianMethod {
    public static void main(String[] args) {
        Info infoObj = new Info("永不磨灭的青春",1);
        System.out.println(infoObj.toString());//重写前:code.study.day03.toStringOverRide.Info@3f3afe78
                                               //重写后:Info{name='永不磨灭的青春', age=1}
        System.out.println(infoObj);
    }
}
-----------------------------------------------------------------------
@Override
public String toString() {  //通过自动生成代码,来重写最高父类'Object'里面的'toString'方法.
                            // 操作:单击'Code' → 单击'Generate' → 单击'toString' → 按要求选择成员变量(默认权限) → 单击OK
                            //         或  按Alt+Insert → 单击'toSting' → 按要求选择成员变量(默认权限) → 单击OK
    return "Info{" +
            "name='" + name + ''' +
            ", age=" + age +
            '}';
}

最后

以上就是搞怪鱼为你收集整理的Object最高父类的方法应用 equals和toString的全部内容,希望文章能够帮你解决Object最高父类的方法应用 equals和toString所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部