Object类
定义:是所有对象的直接或者间接父类。该类中定义的肯定是所有对象都具备的功能。
Object类中的equals方法
作用:指示其他某个对象是否与此对象“相等”,就是比较哈希码值是否相等。
演示代码
Object类中的toString方法
作用:返回该对象的字符串表示。该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
注意:
输出语句打印对象时,会自动调用对象的toString方法。打印对象的字符串表现形式。
定义:是所有对象的直接或者间接父类。该类中定义的肯定是所有对象都具备的功能。
Object类中的equals方法
作用:指示其他某个对象是否与此对象“相等”,就是比较哈希码值是否相等。
演示代码
import java.lang.reflect.Method;
/*
需求:比较两个人是不是同龄人
思路:重写父类的equals方法,定义自己特有比较方法
*/
//人类
class Person{ //extends Object
private String name;
private int age;
Person(String name,int age){
this.name = name;
this.age = age;
}
//重写equals方法:比较两个人是不是同龄人
public boolean equals(Object obj){
//判断比较的对象是不是同类型对象
if(obj instanceof Person){
//多态,向下转型
Person p = (Person)obj;
return this.age == p.age;
}
return false;
}
}
//猫类
class Cat{
}
//测试类
class ObjectDemo{
public static void main(String[] args){
Person p1 = new Person("hxm",20);
Person p2 = new Person("lx",20);
Cat c = new Cat();
//同类型对象比较
System.out.println(p1.equals(p2));
//不同类型对象比较
System.out.println(p1.equals(c));
//获取Person类中方法
System.out.println("获取Person类中方法");
Method[] meth = p1.getClass().getMethods();
for(int x=0; x<meth.length; x++){
System.out.println(meth[x].toString());
}
}
}
Object类中的toString方法
作用:返回该对象的字符串表示。该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
注意:
输出语句打印对象时,会自动调用对象的toString方法。打印对象的字符串表现形式。