3-6 ==运算符 和equals 方法

来源:互联网 发布:淘宝卖了不加销量 编辑:程序博客网 时间:2024/06/06 20:52

对于基本数据类型来说,==比较的是他们的值(值比较)

          int a = 2;
int b = 3;
int c = 2;
System.out.println(a == b);  // false
System.out.println(a == c);  // true

对于引用数据类型来说,==比较的是他们的引用(内存地址)

          Person p1 = new Person("tom", 13);
Person p2 = new Person("jerry", 23);
Person p3 = new Person("tom", 13);

          System.out.println(p1 == p2); //false
System.out.println(p1 == p3); //false
System.out.println(p1 == p4); //false

 ****引用数据做比较要重写object对象中的equals方法****

       
public boolean equals(Object obj) {
//拿obj和自己(this)进行比较,怎么比较呢?比较规则自己定义
if(obj instanceof Person) {
Person tmp = (Person) obj;
if(this.name == tmp.getName()&&this.age == tmp.getAge()) {
//相等
return true;
} else {
//不等
return false;
}
}
return false;
}

Equals  一定要重写equals方法

是拿Boj和自己(this)进行比较,比较规则自己定义

如果打印一个对象 默认调用的是to string方法  可以重写to string方法


0 0