/*
关于Object里面的equals方法:
public boolean equals (Object obj){
return (this==obj);
}
o1.equals(o2),o1是this,o2是obj
==两边如果是引用类型,则比较内存地址
java对象中的equals方法的设计目的:判断两个对象是否一样
*/
public class fuck2{
public static void main(String[] args){
Object o1=new Object();
Object o2=new Object();
boolean b1=o1.equals(o2);
System.out.println(b1);//false
star s1=new star(100,"haha");
star s2=new star(100,"haha");
star s3=new star(110,"haha");
System.out.println(s1.equals(s2));//true
System.out.println(s2.equals(s3));//false
}
}
class star{
int id;
String name;
public star(int id,String name){
this.id=id;
this.name=name;
}
//Object里的equals方法比较的是内存地址
/*在现实业务逻辑当中,不应该比较内存地址,应该比较内容
所以Object中的equals方法也要重写
根据需求重写equals方法,需求规定:如果身份证号一致,名字也一致,则代表是同一个人
*/
public boolean equals(Object obj){
if (this==obj) return true;
if(obj instanceof star){
//强制类型转换
star s=(star)obj;
if(s.id==id&&s.name.equals(name)){
return true;
}
}
return false;
}
}
关于Object里面的equals方法:
public boolean equals (Object obj){
return (this==obj);
}
o1.equals(o2),o1是this,o2是obj
==两边如果是引用类型,则比较内存地址
java对象中的equals方法的设计目的:判断两个对象是否一样
*/
public class fuck2{
public static void main(String[] args){
Object o1=new Object();
Object o2=new Object();
boolean b1=o1.equals(o2);
System.out.println(b1);//false
star s1=new star(100,"haha");
star s2=new star(100,"haha");
star s3=new star(110,"haha");
System.out.println(s1.equals(s2));//true
System.out.println(s2.equals(s3));//false
}
}
class star{
int id;
String name;
public star(int id,String name){
this.id=id;
this.name=name;
}
//Object里的equals方法比较的是内存地址
/*在现实业务逻辑当中,不应该比较内存地址,应该比较内容
所以Object中的equals方法也要重写
根据需求重写equals方法,需求规定:如果身份证号一致,名字也一致,则代表是同一个人
*/
public boolean equals(Object obj){
if (this==obj) return true;
if(obj instanceof star){
//强制类型转换
star s=(star)obj;
if(s.id==id&&s.name.equals(name)){
return true;
}
}
return false;
}
}