1

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 是 比较对象

多花点时间就可以学会~


嘻嘻硕
27 声望12 粉丝

想当一只天然呆的鸭qwq