Java复习-17-Object类

Object 类

  1. 功能:可以解决参数的统一问题
  2. 特点:Java中所有的类型都是 Object 类的子类(包括自定义的类)。
  3. 运用:如果一个程序的方法要求可以接收所有类的对象的时候就可以利用 Object 实现处理。

toString() 方法

可以获取一个对象的完整信息,而进行对象直接输出的时候所调用的方法就是 toString()方法,所以调用与否实现是一样的。
可以在以后的开发中对象信息的获得可以直接覆写此方法。

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

    @override
    public string tostring() {
        return "姓名:" + this.name + "、年龄:" + this.age ;
    }
}

public class JavaDemo{
    public static void main(string args[]){
        Person per = new Person("张三",20);
        System.out.println(per); // 直接输出对象,而不再需要调用一个 getInfo() 方法
    }
}

对象比较 equals()

Object 类作为所有类的父类,提供了对象比较操作的支持。其在源码中的定义,即默认情况下,该方法只是进行了两个对象的地址判断(如下)。

public boolean equals(Object obj) {
    return (this == obj);
}

故,对于实际的使用者而言,要想实现正确的判断处理,就要在子类中覆写该方法。先前所说的字符串的比较本质上就是继承并且覆写了Object的这个方法。自定义类的比较如下:

// equals()方法这个时候会有两个对象: 当前对象this、传入的object
public boolean equals (Object obj) {
    if (!(ovj instanceof Person)){ // 同一类才进行比较
        return false ;
    }
    if (obj == null){ // 不关心null的比较
        return false ;
    }
    if (this == obj){ // 同一个地址
        return true ;
    }

    Person per = (Person) obj ; //目的是为了获取类中的属性

    return this.name.equals(per.name) && this.age == per.age;
}

实际开发应用

  • 自定义类的对象信息需要答应时,可以覆写 Object 类的toString()方法。
  • 自定义类的对象之间进行内容的比较时,覆写 Object 类的equals()方法。

你可能感兴趣的:(编程语言与bug,java,开发语言)