Object类是java语言中的根类,是所有类的父类。Object类中所有方法子类都可以使用,所有类在创建对象的时候,最终找到父类就是object。
演示Object方法的使用:
1、创建Person 类,直接继承了Object。
/**
*
*/
package test01;
/**
* @author Administrator
*
*/
public class Person extends Object{
private String name = "";
private int age = 10;
private double id = 0L;
public Person() {
}
public Person(double id) {
this.id = id;
}
@Override
public boolean equals(Object obj) {
if (obj==null) {
return false;
}
if (!(obj instanceof Person)) { //不是Person类
return super.equals(obj);
}
return this.id == ((Person)obj).getId();
}
@Override
public String toString() {
//return "Person [name=" + name + ", age=" + age + ", id=" + id + "]";
return name + ","+ age;
}
public double getId() {
return id;
}
public void setId(double id) {
this.id = id;
}
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;
}
}
所有类都默认继承Object,所以这么写也是一样的效果public class Person {
}
2、test类,演示使用object的方法
package test01;
public class Test {
public static void main(String[] args) {
Person p1 = new Person( );
Person p2 = new Person( );
//equels 方法,比较的为两个对象的hash值(地址)
boolean isEquals = p1.equals(p2);
System.out.println(isEquals); //b ? "true" : "false" 打印的为字符串
//打印的为p1的hash值
System.out.println(p1);
System.out.println(p2);
boolean isEquals2 = p1.equals(p1);
System.out.println(isEquals2);
//重写子类的equals方法 person 只要id相等,就认为是同一个person
Person p3 = new Person(1);
Person p4 = new Person(1);
boolean isEqual3 = p3.equals(p4);
System.out.println(isEqual3);
//重写toString方法
p3.setName("xliu");
p3.setAge(18);
System.out.println(p3.toString());
System.out.println(p3 );
}
}
打出的结果如下:
true
,10
,10
true
true
xliu,18
xliu,18
重写了Object类的equals、toStirng 方法