A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵国刚 中级黑马   /  2013-8-13 08:09  /  929 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在定义类时,何时需要重写Object 类中toString()方法何时需要重写Object类中equals()方法呢?

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 淡定

查看全部评分

5 个回复

倒序浏览
1.重写toString 在开发中一般是在你想得到这个类通过一些运算得到的字符串形式,这个时候可以考虑重写一下toString
  1. public class Message {
  2.         public String toString() {
  3.                         return beanToXML(this);
  4.         }
复制代码
  1. private String beanToXML(Object obj){
  2.     .......
  3. return null;
  4. }
  5. }
复制代码
2.我们通常自定义的对象,需要重写Equals方法,比较的结果才会为真!
  1. public class JSONObject {
  2.     public boolean equals(Object object) {
  3.             return object == null || object == this;
  4.         }
  5. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 py强子 于 2013-8-13 10:21 编辑

toString()的作用就是方便所有类的字符串操作而特意加入的一个方法:
比如说,你想打印某个对象,而这个对象没有特定的打印方式,这是就需要覆盖toString方法;
很简单的一个例子:看一下应该就明白啦;
public class Orc
{

       public static class A

       {

              public String toString()

              {

                     return "this is A";

              }


       }

       public static void main(String[] args)

       {

              A obj = new A();

              System.out.println(obj);

       }

}
而equals()的作用就是:指示某个其他对象是否“等于”此 object。
比较两个对象是否相等,就要用到equals啦:
String a="abc";
String b=new String("abc");
a.equals(b);   //true

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 很给力!

查看全部评分

回复 使用道具 举报
toString()方法的功能是将对象转换成字符串,通过该方法可以将任何类型的对象方便的转化为字符串类型。在程序中,如果需要指定转化字符串的格式,就需要重写toString()的方法了。

equals()方法主要用于比较两个对象是否相等,如果需要自定义比较规则就需要重写该方法了。在重写equals()方法的同时,一般都相应地重写hashCode()方法。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
py强子 发表于 2013-8-13 10:14
toString()的作用就是方便所有类的字符串操作而特意加入的一个方法:
比如说,你想打印某个对象,而这个对 ...

你这么说我就有点理解了谢谢
回复 使用道具 举报
重写toString()最常用于调试。在实际开发中,我们通常通过java开发工具自带的调试器来调试程序,但有些人不会完全这么干,在写实体JavaBean时,通过实体JavaBean的属性构造一个toString()方法,然后在需要的地方,直接通过System.out.println()方法打印这个实体对象,输出这个实体对象当前的属性值,来完成调试代码的需要。。

而重写equals()方法常用于定义或者重新定义两个对象的比较规则,指定比较的实现细节。如Sting对象equals()方法实现了按字典顺序逐个比较两个字符串。。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马