1,equals方法

(1)什么时候需要重写?

如果希望不同内存但相同内容的两个对象equals时返回true,则需要重写equals

(2)怎么重写?

class A
{ public int i;
pulic A(int i)//构造函数
{this.i=i;
}
public boolean equals(Object obj)//重写equals
{A aa=(A)obj;
if(this.i==aa.i)
return true;
else
return flase;
}
}
public class testEquals{
public staric void main(String[] args){
A aa1=new A(10);
A aa2=new A(10);
System.out.println(aa1.equals(aa2));
}
}

(3)注意问题:

String类系统已经重写equals了,不必再重写;

另外区分equals和==

public class extendsPrivateTest {
public static void main(String[] args){  
    String str1=new String("China");
    String str2=new String("China");  
   System.out.println(str1.equals(str2));
   System.out.println(str1==str2);
    String str3="China";
    String str4="China";  
   System.out.println(str3.equals(str4));  
   System.out.println(str3==str4);  } }

str1和str2放在堆里

true//equals已经被系统重写

false

str3和str4是放在数据区,都是指向一个数据

true

true

2.toString方法

(1)为什么需要重写toString?

Object类中的toString方法返回的是类的名字和该对象的哈希码组成的一个字符串,例,A@deced

而我们实际想用System.out.printf(类对象名)输出该对象的toStringd()方法返回的字符串不是上述的时,就必须重写toSring方法。

(2)怎么重写toString方法?

注意:为了实际需要,建议子类重写从父类Object继承的toString()方法

class Point{
private int i,j;
puvlic Point(int i,int j){
this.i=i;
this.j=j;
}
public String toString(){
return "["+i+","+j+"]";
}
}
public class testtoString{
public static void main(String[] args){
Point p1=new Point(1,3);
System.out.println(p1);
}
}

Java 中equals和toString()方法重写的更多相关文章

  1. java中equals和hashCode方法随笔二

    前几天看了篇关于java中equals和hashCode方法的解析 1.Object类中的equals方法和hashCode方法. Object类中的equals和hashCode方法简单明了,所有的 ...

  2. java中equals与hashCode的重写问题

    这几天有一个朋友问我在重写equals和hashCode上出现了问题,最后我帮她解决了问题,同时也整理出来分享给大家 现上Object的equals与HashCode的代码 public boolea ...

  3. java中equals和hashCode方法的解析

    解析Java对象的equals()和hashCode()的使用 前言 在Java语言中,equals()和hashCode()两个函数的使用是紧密配合的,你要是自己设计其中一个,就要设计另外一个.在多 ...

  4. Java中equals和hashcode的区别?

    Java中equals和hashcode方法是在Object对象中的,所以每个对象都有这两个方法,大多数时候我们为了实现特定需求需要重写这两个方法 equals和hashcode方法常用在同一个类中用 ...

  5. java中equals方法和==的用法

    java中equals方法的用法以及==的用法(参考一)equals 方法是 java.lang.Object 类的方法.两种用法说明:(1对于字符串变量来说,使用“==”和“equals()”方法比 ...

  6. Java中equals与==和comparaTo的区别

    一.先说说Java中equals和==的区别: Java中的数据类型,可分为两类: 1.基本数据类型(也叫原始数据类型) 八大基本数据类型 char byte short int long doubl ...

  7. java中equals和==的区别 (转)

    java中equals和==的区别  值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...

  8. Java中Set的contains()方法

    Java中Set的contains()方法 -- hashCode与equals方法的约定及重写原则 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashCode() a ...

  9. 深入探究Java中equals()和==的区别是什么

    目录 相等判断符"==" "=="判断基本类型数据 "=="判断引用类型数据 相等判断方法equals() 思考:为什么要设计equals( ...

随机推荐

  1. printf()函数

    printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息. printf()函数的调用格式为: printf("<格式化字符串>", <参 ...

  2. 访问者模式,visitor

    定义: 表示作用于某对象结构中的各个元素的操作. 可以在不改变各元素的类的前提下定义作用于这些元素的新操作. 前提: 适用于数据结构(Element)相对稳定的系统,这样visitor中的方法就是稳定 ...

  3. Threejs 使用的3D格式

    3D格式你可以通过任意软件导出(.3ds,dae等),但是threejs 无法使用, 1,http://www.blender.org/ 下载这款开源的3d软件 2,https://github.co ...

  4. Jquery基本、层次选择器

    基本选择器: $("#none").css("background","#bbffaa"); 改变id为none的所有元素的背景色 $(&q ...

  5. Jsoup:解决java.net.UnknownHostException的问题

    Jsoup:解决java.net.UnknownHostException的问题 时间 2013-06-20 11:23:08  CSDN博客 原文  http://blog.csdn.net/xyw ...

  6. poj2194Stacking Cylinders

    链接 可以根据反余弦和反正切算出角a和b的值, 然后向量旋转就可以了,图中的状态旋转rotate((2,0),a+b)  反状态把角度反过来,点取(-2,0)即可. 不知道是不是理解错了,题意写着两圆 ...

  7. hdu4570Multi-bit Trie

    链接 13年长沙邀请赛的题,神题意~ 题意:摘自http://blog.csdn.net/libin56842/article/details/9703457 这题题意确实有点难懂,起码对于我这个英语 ...

  8. Oracle 逐条和批量插入数据方式对比

    创建测试表 create table base_users ( userid         varchar2(16), username  varchar2(32), passwd      var ...

  9. Android开发设计模式之——单例模式关于线程不安全问题处理

    单例模式是设计模式中最常见也最简单的一种设计模式,保证了在程序中只有一个实例存在并且能全局的访问到.比如在Android实际APP 开发中用到的 账号信息对象管理, 数据库对象(SQLiteOpenH ...

  10. jquery 设置checked="checked"无效,radio未选中。。

    jquery 设置checked="checked"无效,radio未选中.. 最好还是使用.prop(),在jQuery1.6版本之前.attr存在一些bug.在1.6之后它会自 ...