Object 类的 toString、equals 方法_hehe.employment.1.1

1.1 Object类

  • java.lang.Object 类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object
  • 如果一个类没有特别指定父类, 那么默认继承自Object类

1.2 Object 类的 toString 方法

  • String toString() :返回该对象的字符串表示
  • 看一个类是否重写了toString方法,直接打印这个类对应对象的名字即可,
  • 如果没有重写toString方法,那么打印的就是对象的地址(默认);
  • 如果重写toString方法,那么就按照重写的方式打印
package cn.xww.demo01;

public class demoToString {
    public static void main(String[] args) {
        Person p = new Person("李华",20);
        String s = p.toString();

        //直接打印对象的名字,其实就是调用对象的toString方法
        System.out.println(p);//Person{name='李华', age=20} 重写了toString方法
        System.out.println(s);//Person{name='李华', age=20} 重写了toString方法
    }
}

1.3 Object 类的 equals 方法

  • public boolean equals(Object obj) :指示其他某个对象是否与此对象“相等”。
  • Object 类的 equals 方法的源码:
public boolean equals(Object obj){
	return (this == obj);
}
  • notes:
    1.参数Object obj : 可以传递任意的对象
    2.方法体
    “==”:比较运算符,返回的就是一个布尔值 true/false
    基本数据类型:比较的是
    引用数据类型:比较的是两个对象的地址值
    this:调用此方法的对象
    obj:传递过来的参数
package cn.xww.demo01;

public class demoEquals {
    public static void main(String[] args) {
        Person p1 = new Person("梨花",20);
        Person p2 = new Person("钻井",20);
        Boolean t = p1.equals(p2);
        System.out.println(t);//false
    }
}

1.4 Object 类的 equals 方法重写

  • 默认地址比较:如果没有覆盖重写equals方法,那么Object类中默认进行 == 运算符的对象地址比较,只要不是同一个对象,结果必然为false
  • 对象内容比较:如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法。
    @Override
    public boolean equals(Object o) {//
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
                Objects.equals(name, person.name);
    }

你可能感兴趣的:(#,间接二步,java)