---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
Object:是所有对象的直接或者间接父类,该类中定义的肯定是所有对象都具备的功能
equals方法:equals(Object obj) 比较两个对象是否相同,其实比的是两个对象的内存地址值
class Demo
{
}
class ObjectDemo
{
public static void main(String[] args)
{
Demo d1 = new Demo();
Demo d2 = new Demo();
System.out.println(d1.equals(d2)); //返回 false
}
}
Object中已经提供了对象是否相同的比较方法
若自定义类中也有比较相同的功能,则只需通过重写equals方法
示例:
class Demo
{
private int num;
Demo(int num)
{
this.num = num;
}
public boolean equals(Object obj)
{
if (!(obj instanceof Demo)) //若obj引用对象不属于Demo
return false;
Demo d = (Demo)obj;
return this.num==d.num;
}
}
class EqualsDemo
{
public static void main(String[] args)
{
Demo d1 = new Demo(6);
Demo d2 = new Demo(5);
Demo d3 = new Demo(6);
Person p = new Person();
/*Demo重写了Object的equals方法,现在Demo的equals比较的是num*/
System.out.println(d1.equals(d2)); //结果:false
System.out.println(d1.equals(d3)); //结果:true
System.out.println(d1.equals(p)); //结果:false
}
}
toString()
返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法(用到返回对象字符串时)。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于: getClass().getName() + '@' + Integer.toHexString(hashCode())
class ToStringDemo
{
public static void main(String[] args)
{
Demo d = new Demo(5);
System.out.println(d.getClass().getName());
System.out.println(Integer.toHexString(d.hashCode()));
System.out.println("被重写后的toString:"+d.toString());
System.out.println("不重写的toString:"+d.getClass().getName()+"@"+Integer.toHexString(d.hashCode()));
}
}
class Demo
{
private int num;
Demo(int num)
{
this.num = num;
}
public String toString() //重写了Object的toString()方法。
{
return "Demo:"+num;
}
}
---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net