对象比较
范例:
class Person
{
private String name ;
private int age ;
public Person(String name, int age){
this.name = name ;
this.age = age ;
}
public boolean compare(Person per){
if(per == null){
return false ;
}
if(this == per){
return true ;
}
if(this.name.equals(per.name)
&& this.age == per.age){
return true ;
}
return false ;
}
public void setName(String name){
this.name = name ;
}
public void setAge(int age){
this.age = age ;
}
public String getName(){
return this.name ;
}
public int getAge(){
return this.age ;
}
}
public class Test
{
public static void main(String args[]){
Person per1 = new Person("张三" , 20) ;
Person per2 = new Person("张三" , 30) ;
if(per1.compare(per2)){
System.out.println("同一个对象") ;
}else{
System.out.println("不同对象") ;
}
}
}
对象比较操作一定是一个类自己本身所具备的功能,而且对象比较操作特点:
- 本类接受自己的引用,而后与本类当前对象(this)进行比较;
- 首先为了避免空指向异常问题出现,应增加一个null来判断;
- 为了防止浪费性能的情况出现(要判断的属性会多),可以增加地址数值来判断,因为相同的对象地址相同;
- 之后进行属性的依次比较,如果属性全部相同返回true,不同返回false。