标签:
Object.equals() 方法:
1 public class EqualsTest1 { 2 public static void main(String[] args) { 3 //Cat c1 = new Cat(); 4 //Cat c2 = new Cat(); 5 //System.out.println(c1 == c2);//result:false 6 Cat c3 = new Cat(1,2,3); 7 Cat c4 = new Cat(1,2,3);//在重写equals()方法之前的比较 8 //System.out.println(c3.equals(c4));//result:false 9 10 System.out.println(c3.equals(c4));//result:true 11 12 } 13 } 14 15 class Cat { 16 int color,height,weight; 17 18 Cat(int color,int height,int weight) { 19 this.color = color; 20 this.height = height; 21 this.weight = weight; 22 } 23 24 public boolean equals(Object obj) { 25 if (obj instanceof Cat) { 26 Cat c = (Cat)obj;//转换成Cat对象 27 if (color == c.color & height == c.height & weight == c.weight) { 28 return true; 29 } 30 } 31 return false; 32 } 33 } 34 35 /* 36 1.如果两个对象的引用直接用 == 号来比较,那么比较的是这个引用所指向的堆内存地址。 37 2.Object类包含了equals()方法,默认的比较方式是比较两个对象引用指向的堆内存地址,就是比较引用 38 的 ==。 39 3.我们定义一个类,一般需要重新定义它从Object类继承的equals()方法来正确的比较。否则是默认 40 的比较方法。 41 */
标签:
原文地址:http://www.cnblogs.com/yhwsy/p/5701778.html