案例演示
public class Dog {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean equals(Object obj){
if(obj instanceof Dog){
Dog dog = (Dog) obj;
return this.name==dog.name&&this.age==dog.age;
}else {
System.out.println("不要拿狗狗和其他东西比");
return false;
}
}
public Dog(String name,int age){
}
public Dog(){
}
}
创建Test类测试修改的equals方法
public class Test2 {
public static void main(String[] args) {
Dog dog1 = new Dog("来福",2);
Dog dog2 = new Dog("来福",2);
System.out.println(dog1=dog2);
System.out.println(dog1.equals(dog2));
Object oo = new Dog("来福",2);
System.out.println(oo instanceof Dog);
System.out.println(oo instanceof Object);
Object o = oo;
Dog d = (Dog) oo;
}
}
Object中的equals方法长什么样String中的equals方法呢???
public boolean equals(Object obj) {
return (this == obj);
}
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}