Object类:是java中所有类的直接或间接父类
如果一个类没有继承任何类,默认继承Object类
public class Person extends Object {
}
或者
public class Person {
}
Object类的常用方法
-
equals(Object obj):用于比较两个对象的属性值是否相同,但是在Object类中的定义为
-
toString():显示的是对象的内存地址
-
hashCode():对象的哈希值
public class Person {
private String name;
private int age;
private String gender;
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 String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public Person() {
}
@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) &&
Objects.equals(gender, person.gender);
}
@Override
public String toString() { //为了显示对象的属性值
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
- getClass():得到对象或者类的结构信息(反射)
- wait():等待(多线程)
- notify():唤醒任何一个(多线程)
- notifyAll():唤醒所有(多线程)
==和 equals的联系和区别
- ==比较的是栈内存的数据
基本数据类型比较的是变量的值
引用数据类型比较的是变量的地址值 - equals比较的两个对象的内容是否相同