equals方法是java中用来比较两个对象是否相等的方法,它实质上是比较两个对象的地址值是否相等,如果相等就返回true,不相等就返回false。由于其定义在Object中,任何类有都是Object类的子类,都会继承Object类,所以任何对象的建立后都具备equals方法,可有时我们需要的并不是对对象地址值的比较,这时我们就需要复写equals方法。在复写的过程中我们应注意复写方法,参数列表中是Object类型,因为Object类中equals方法就是这样的,不要想当然的将其改为要比较的类型,那样就不是方法的复写,而是方法的重载了,语句是:
public boolean equals(Object obj)
{
//方法主体语句,也即是自己想要比较的量
}
这里面就涉及到了多态的知识,因为在调用方法是我们知道一切类都是Object的子类,那就是说我们可传入一切对象,那我们就应该进行类型的变换,也即是类型的向下转,然后我们再建立两个对象就可以进行自己想要的比较了,如年龄,数值等等。
toString方法是java中用来将对象的哈希值(也即内存地址)打印的方法,它也定义在Object类中,与equals方法相同,任何对象的建立都可以直接的运用toString方法。在很多场合下打印地址值无疑是无意义的,所以在使用该方法时往往也是要进行复写的,语句为:
public String toString( )
{
//需要表现的字符串内容
}
java中在描述类时equals和toString方法往往都是要根据具体情况进行复写的,与这两中方法相似,Object类中定义的很多方法都会被复写,原因也是很显然的,Object类中的方法都是相对“共性”的方法主体,而在每个类的实际需求中,是不同于原方法主体的内容的,所以是要进行复写的。
---------------------- android培训、 java培训、期待与您交流! ----------------------