:是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中得到了实现