java 中equls tostring重写的问题,在线等 java中 自定义的类中,有时需重写equls tostring 有时不需重写,这是怎么区别的呀,thanks 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对象的toString 默认 getClass().getName() + '@' + Integer.toHexString(hashCode()) ,当你不想要这结果的时候你就重写呗。一样的道理,当你不想用默认的equal来比较的时候,就重写喽 @Override public boolean equals(Object obj) { // TODO Auto-generated method stub return super.equals(obj); } @Override public String toString() { // TODO Auto-generated method stub return super.toString(); } 刚学java吧 equls tostring是Object类的方法,所有自定义的类都默认继承Object重不重写看你自己设计的类的需要咯,有必要就重写,例如我要打印一个Person类的对象,系统会默认的调用它的toString方法,如果你的Person类重写了个方法,虚拟机就调用你Person类中的这个方法,如果没有,就调用Object的toString在你自己定义的这个toString方法里,你可以写你想要的东西,返回一个String就OK 例如:person的toString里面返回Person的年龄和姓名:public String toString(){return "姓名:"+this.getName()+",年龄:" + this.getAge();} 主要看你的需求。比如调用LIST的contains()方法时候,他会遍历成员进行equals()方法的判断,但是object的默认这个方法实际上比较的是内存地址,也就是物理上同一个对象。有时候,我们需要比较的是概念上的同一个对象,并不关心物理存储上是否有区别,这个时候你需要重写LIST的成员类型的equals()方法,一般是反射出来属性,循环遍历每个属性的值是否一致,也就是等同于基本数据类型的==运算。 就是看你有没有需要改变类的默认实现方式toString()就是当你写System.out.println(类对象)时输出的内容,有需要就可以改写,不改就按默认输出同理equals()也是一样,当你比较两个对象有没有特别的要求要改变比较方法,有的话就重写,不重写就按默的方法比较,还有重写的话最好连hasCode()也一起重写,这样保证当相同对象比较时是true Swing: removeAll()不起作用!求大牛急救~~ 超连接 中文传参最后一个字乱码问题 JLex & JCup 综合应用 关于正则判断是否有表单元素,需要您的帮助 如何学好spring!!!!!!(急) Swing中,在点击一个按钮或者菜单时,如何判断Shift键被按下 treeroot进来给你100分 为什么达不到搜索的效果? 请问如何建立自己的java库 我自己看完书,记的代码,一个可以打印出Fibonacci数列,一个不能,大神指教下呗 如何实现在JTable表格中输入信息时可以有一个下拉菜单供选择?(有图) 用jfreechart的在jpanel中添加图表的问题
public boolean equals(Object obj) {
// TODO Auto-generated method stub
return super.equals(obj);
} @Override
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
equls tostring是Object类的方法,所有自定义的类都默认继承Object
重不重写看你自己设计的类的需要咯,有必要就重写,例如我要打印一个Person类的对象,系统会默认的调用它的toString方法,如果你的Person类重写了个方法,虚拟机就调用你Person类中的这个方法,如果没有,就调用Object的toString
在你自己定义的这个toString方法里,你可以写你想要的东西,返回一个String就OK 例如:person的toString里面返回Person的年龄和姓名:public String toString(){
return "姓名:"+this.getName()+",年龄:" + this.getAge();
}
比如调用LIST的contains()方法时候,他会遍历成员进行equals()方法的判断,但是object的默认这个方法实际上比较的是内存地址,也就是物理上同一个对象。
有时候,我们需要比较的是概念上的同一个对象,并不关心物理存储上是否有区别,这个时候你需要重写LIST的成员类型的equals()方法,一般是反射出来属性,循环遍历每个属性的值是否一致,也就是等同于基本数据类型的==运算。
toString()就是当你写System.out.println(类对象)时输出的内容,有需要就可以改写,不改就按默认输出
同理equals()也是一样,当你比较两个对象有没有特别的要求要改变比较方法,有的话就重写,不重写就按默的方法比较,还有重写的话最好连hasCode()也一起重写,这样保证当相同对象比较时是true