常用API:Object

2023-12-26 17:58:26

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;
    }

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

    @Override
    public boolean equals(Object o) {
        // 判断两个对象地址是否一样返回true
        if (this == o) return true;
        // 判断 o 是null直接返回false,或者比较者的类型与被比较者的类型不一样,返回false
        if (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类提供的对象克隆方法

当某个对象调用这个方法时,这个方法会复制一个一模一样的新对象返回。

?浅克隆

拷贝出的新对象,与原对象中的数据一模一样(引用类型拷贝的只是地址)

?

深克隆?

对象中基本类型的数据直接拷贝。

对象中的字符串数据拷贝的还是地址。

对象中还包含的其他对象,不会拷贝地址,会创建新对象。

??

文章来源:https://blog.csdn.net/SU_mu147/article/details/135222631
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。