Object
Object类的作用:
- Object类是Java中所有类的祖宗类,因此,Java中所有的对象都可以直接使用Object类中提供的一些方法。
Object类的常见方法
方法名 | 说明 |
---|---|
public String toString() | 返回对象的字符串表示形式 |
public boolean equals(Object o) | 判断两个对象是否相等 |
protected Object clone() | 对象克隆 |
toString存在的意义:toString()方法存在的意义就是为了被子类重写,一般返回对象具体的内容。
equals存在的意义:直接比较两个对象的地址是否完全相同,完全可以用 “ == ” 替代equals,equals存在的意义就是为了被子类重写,一般子类自己来定制比较规则(不然比较对象内容)。
Student类
import java.util.Objects;public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}@Overridepublic boolean equals(Object o) {// 判断两个对象地址是否一样返回trueif (this == o) return true;// 判断 o 是null直接返回false,或者比较者的类型与被比较者的类型不一样,返回falseif (o == null || getClass() != o.getClass()) return false;// o不是null,且o一定是学生类型的对象,就开始比较内容了Student student = (Student) o;return age == student.age &&Objects.equals(name, student.name);}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;}
}
Test类
public class Test {public static void main(String[] args) {Student s1 = new Student("张三",18);System.out.println(s1);Student s2 = new Student("张三",18);System.out.println(s2.equals(s1));}
}
Object类提供的对象克隆方法
当某个对象调用这个方法时,这个方法会复制一个一模一样的新对象返回。
浅克隆
拷贝出的新对象,与原对象中的数据一模一样(引用类型拷贝的只是地址)
深克隆
对象中基本类型的数据直接拷贝。
对象中的字符串数据拷贝的还是地址。
对象中还包含的其他对象,不会拷贝地址,会创建新对象。