1、基本类型使用==判断是否相等
2、引用使用==判断是否指向同一个对象
3、使用equals判断2个对象是否相等
因为Dog是自己创建的类型,所以需要自己实现equals函数,不然默认是判断两个引用是否指向同一个对象
public class Dog {
String name;
int a;
double b;
Dog() {
name = "狗狗";
}
public void bark() {
System.out.println("Ruf!Ruf!");
}
@Override
public boolean equals(Object obj) {
Dog d = (Dog) obj;
if (name.equals(d.name) && a == d.a && b == d.b) {
return true;
} else {
return false;
}
}
}
public class App {
public static void main(String[] args) throws Exception {
// App app = new App();
Dog d = new Dog();
Dog c = d;
Dog e = new Dog();
System.out.println(d == c);
System.out.println(d == e);
System.out.println(d.equals(e));
System.out.println("---------");
d.name = "test";
System.out.println(d.equals(e));
}
}
true
false
true
---------
false