class Demo//extends Object
{
private int num;
Demo(int num)
{
this.num = num;
}
public boolean compare(Demo d)
{
return this.num == d.num;
}
}
class ObjectDemo
{
public static void main(String[] args)
{
Demo d1 = new Demo();
Demo d2 = new Demo();
Demo d3 =d1;
System.out.println(d1.equals(d2));
System.out.println(d1.equals(d3));//其实应用的是== 比较的是地址
}
}
查阅javaapi:类Object是类层次结构的根类。每个类都使用Object作为超类。
Object类是所有对象的直接或者间接的父类。内含了所有对象都具有的功能。
Object类中已经提供了对对象是否相同的比较方法。
如果自定义类中也有相同的 比较 功能,
只要演戏父类中的功能,建立自己特有的比较内容即可。(覆盖)
class Demo
{
private int num;
public boolean equals(Object obj)//复写
{
if( !(obj instanceof Demo))
return false;
Demo d = (Demo)obj;
return this.num == d.num;
}
public boolean equals(Demo d)//重载
{
}
}
------------------------------------------------------------------------------------------------------------------
toString
class ObejectDemo
{
public static void main(String[] args)
{
Demo d1 = new Demo(4);
System.out.println(Integer.toHexString(d1.hashCode())));
System.out.println(d1.toString());
}
}
getmethod:反编译
一般来说,自己创建类的时候,经常要复写 比较 方法 和 toString方法。