Object类的中的 toString + equals 用法

Posted 嘻嘻硕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object类的中的 toString + equals 用法相关的知识,希望对你有一定的参考价值。

Object类

如果一个类没有指定的父类, 那么则会默认继承Object类

public class Student /* extends Object */ {
 // ...
}

  • 学习目标

    • toString
    • equals

toString

toString方法其实就是返回该对象字符串表示。
关键点来了哈
toString = 对象类型 + "@" + 地址hashCode(哈希数值)
toString 由于是返回的结果是地址,开发中每个对象属性不同,所以我们一般需要重写它。

覆盖重写

不希望使用toString方法得到默认行为,可以覆盖重写它

类
pubilc class Person{

  @Override
  public String toString(){
  return "嘻嘻硕" + "❤" + Integer.toHexString(hashCode());
 }  

}

实现类
public class Demo03 {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person.toString());
   }
}

输出结果:
曹在硕❤36d64342


equals

equals:指示某个对象是否与 比较对象"相等"。
== 比较两个变量本身的值,即两个对象在内存中的首地址。

== 是默认地址比较 / equals 是对象内容比较

public class Demo02 {
    public static void main(String[] args) {

       String s1 = "abc";
       String s2 = "abc";


        System.out.println(s1 == s2); // true 因为地址是一样的

        String s3,s4,s5 = "abc";

        s3 = new String("abc");
        s4 = new String("abc");

        System.out.println(s3 == s4);   // false 地址不同 new会开辟一个新的地址
        System.out.println(s3.equals(s4)); // true 结果一致 所以为true


    }
}

加深影响

String s1,s2,s3 = "abc" , s4 = "abc";
        s1 = new String("abc");
        s2 = new String("abc");

        // ==
        System.out.println("s1 == s2: " + (s1 == s2)); 
        System.out.println("s1 == s3: " + (s1 == s3));
        System.out.println("s3 == s4: " + (s3 == s4));

        // equals()
        System.out.println("s1.equals(s2)" + s1.equals(s2));
        System.out.println("s1.equals(s3)" + s1.equals(s3));
        System.out.println("s3.equals(s4)" + s3.equals(s4));

输出结果为:
s1 == s2: false
s1 == s3: false
s3 == s4: true
s1.equals(s2) : true
s1.equals(s3) : true
s3.equals(s4) : true


总结 :
== 是 比较地址
equals 是 比较对象

多花点时间就可以学会~

以上是关于Object类的中的 toString + equals 用法的主要内容,如果未能解决你的问题,请参考以下文章

Object类的方法,toString的重写.

object的toString方法返回

有关java object类的toString方法

Object类的用法和作用

JAVA基础复习一 Object类的toString()方法剖析

java中Integer类的对象转成object类,但是为啥tostring输出的是数字不是地址