Java复习-17-Object类
Object 类
- 功能:可以解决参数的统一问题
- 特点:Java中所有的类型都是 Object 类的子类(包括自定义的类)。
- 运用:如果一个程序的方法要求可以接收所有类的对象的时候就可以利用 Object 实现处理。
toString() 方法
可以获取一个对象的完整信息,而进行对象直接输出的时候所调用的方法就是 toString()方法,所以调用与否实现是一样的。
可以在以后的开发中对象信息的获得可以直接覆写此方法。
Class Person {private String name;private int age;public Person(String name ,int age) {this .name = name;this .age = age ;}@overridepublic 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()方法。