在java中,当overwrite了一个Object的equals方法,一般还要overwrite什么方法,为什么?

来源:百度知道 编辑:UC知道 时间:2024/05/24 04:46:37
还有一问题
java中,要得到当前日期的下一个月的日期,怎样实现?

overwrite了一个Object的equals方法主要是为了实现自己定义的类之间的比较,没有必要overwrite其他什么方法。
比如你自己定义了一个Student类,而两个类的相等只需要ID号相等即可,此时就需要你overwrite equals方法了。

日期操作主要使用Calendar类来进行,当前日期的下一个月。看这个吧:
Calendar temp = Calendar.getInstance(TimeZone.getDefault());
temp.setTime(starttime);
temp.add(temp.MONTH, Integer.parseInt(interval));

http://hi.baidu.com/zhongludeng/blog/item/82d5f4febf3006325c60085d.html

重写equals方法的同时还得重写hashcode方法

在用Collection接口的时候就是这样的,要不出错

equals方法和hashCode方法一般要重载。
equals方法主要用于集合类中,用于判断两个对象是否相等。
hashCode方法用于HashSet,HashMap的哈希函数。
当没重载这两个方法,把对象放到容器中,会出现意想不到的问题。

你还可以重载toString()方法,用于将对象显示出字符串。System.out.println(myclass).

还有clone方法也可以考虑重载,如有必要。

以下这段文字摘自Think In Java:

为了常规用途而创建一个类时,请采取“经典形式”,并包含对下述元素的定义:
equals()
hashCode()
toStrin