13.Object类()

:是java所有类的基类。

构造方法:可以直接实例化

Object();

1.toString();返回对象的字符串表示形式:让在控制台的打印的可以看懂

class Person {
    String name;
    int age;
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
////等于下列字符串
getClass().getName() + '@' + Integer.toHexString(hashCode())

2.equals(Object obj) 指示一些其他对象是否等于此

public boolean equals(Object obj) {
     return (this == obj);
 }
//Object 类下面的方法比较的是两个对象的地址。不看内容
//String 类下面的equals比较的是内容,重写了Object的eqalus方法
package com.homework;

import java.util.Objects;

class Person {
    private String name;
    private int age;
    //有参构造

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    //重写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);
    }
//无论何时重写equals方法,通常需要重写`hashCode`方法,以便维护hashCode`方法的通用合同,该方法规定相等的对象必须具有相等的哈希码
    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    //tostring

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    //getset

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
public class Demo1 {
    public static void main(String[] args) {
    Person person1 = new Person("小白" ,18);
    Person person2 = new Person("小白" ,18);
        System.out.println(person1.equals(person2));//true
    }
}

3.int hashCode(); 在2中得到了实现

————————

:是java所有类的基类。

构造方法:可以直接实例化

Object();

1.toString();返回对象的字符串表示形式:让在控制台的打印的可以看懂

class Person {
    String name;
    int age;
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
////等于下列字符串
getClass().getName() + '@' + Integer.toHexString(hashCode())

2.equals(Object obj) 指示一些其他对象是否等于此

public boolean equals(Object obj) {
     return (this == obj);
 }
//Object 类下面的方法比较的是两个对象的地址。不看内容
//String 类下面的equals比较的是内容,重写了Object的eqalus方法
package com.homework;

import java.util.Objects;

class Person {
    private String name;
    private int age;
    //有参构造

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    //重写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);
    }
//无论何时重写equals方法,通常需要重写`hashCode`方法,以便维护hashCode`方法的通用合同,该方法规定相等的对象必须具有相等的哈希码
    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    //tostring

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    //getset

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
public class Demo1 {
    public static void main(String[] args) {
    Person person1 = new Person("小白" ,18);
    Person person2 = new Person("小白" ,18);
        System.out.println(person1.equals(person2));//true
    }
}

3.int hashCode(); 在2中得到了实现