Object:是所有对象的直接或者间接父类,传说中的上帝。
该类中定义的肯定是所有对象都具备的方法。
Object类中已经提供了对对象是否相同的比较方法
如果自定义类中也有比较相同的功能,没有必要重新定义
只要沿袭父类中的功能,建立自己特有的比较内容即可,这就是覆盖
public class Object_equals_07 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//比较对象
/*Demo d1=new Demo();
Demo d2=new Demo();
Demo d3=d1;
System.out.println(d1.equals(d2)); //比较的地址 false
System.out.println(d1.equals(d3)); //true
*/
//比较数字
Demo d4=new Demo(4);
Demo d5=new Demo(4);
System.out.println(d4.equals(d5)); //true
Person p=new Person();
System.out.println(d4.equals(p)); //false
}
}
class Demo{
private int num;
Demo(){}
Demo(int num){
this.num=num;
}
/*public boolean compare(Demo d){
return this.num==d.num;
}*/
public boolean equals(Object o){ //Object o=new Demo();
if(o instanceof Demo){
Demo d=(Demo)o;
return this.num==d.num;
}
return false;
}
}
class Person{
}
toString() 打印类名@哈希吗
public class Object_toString_08 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo1 d1=new Demo1();
Demo1 d2=new Demo1();
System.out.println(d1.toString());
System.out.println(Integer.toHexString(d1.hashCode()));
Class c=d1.getClass();
System.out.println(c.getName()+"@"+Integer.toHexString(d1.hashCode()));
}
}
class Demo1{
int num=10;
public String toString(){
return "deme:"+num;
}
}
class Person1{
}