java当中equals函数的作用小结

来源:互联网 发布:鞋子淘宝 编辑:程序博客网 时间:2024/05/18 21:10

equals函数的作用
1.equals函数在什么地方?
equals在Object类当中,、
2.equals函数的作用
3.复写equals函数的方法?
4.“==”操作符的作用,判断两个引用是否指向堆内存中同一个对象的地址,如果是就返回true,否则就返回false。
class User{
   private String name;
   private int age;
  
   public void User(){
       System.out.println("User 的构造函数");
   }
}
 
class Test{
  public static void main(String args[]){ 
      User u1 = new User();
   User u2 = new User();
   User u3 = u1;
  
   if(u1 == u2){
      System.out.println(" 两个对象堆内存相等");
   }else {
  System.out.println(" 两个对象堆内存不相等");
   }
  
     if(u1 == u3){
        System.out.println(" 两个对象堆内存相等");
     }else {
     System.out.println(" 两个对象堆内存不相等");
     }
  
  
  }
}
 

5.什么是对象的内容相等
1)对象的内容相等需要符合以下两个条件:
a)两个对象的类型是否相同(可以使用instanceof操作符进行比较);
b)两个对象的成员变量的值完全相同。
6.基本类型的对象一般用“==”来比较,其它类型的对象一般用“equals”来比较。
7.equals实例
class User{
   public String name;
   public int age;
  
   public void User(){
       System.out.println("User 的构造函数");
   }
  
   public boolean equals(Object obj){
      if(this == obj){
      return true;
   }
   
   if(obj instanceof User){
   User u = (User)obj;
   if(this.age == u.age && this.name.equals(u.name)){
      return true;
   }else{
      return false;
   }
   }else{
      return false;
   }
   }
}

class Test{
  public static void main(String args[]){ 
      User u1 = new User();
   User u2 = new User();
   User u3 = new User();
  
   u1.age = 21;
   u1.name = "张三";
  
   u2.age = 21;
   u2.name = "王五";
  
   u3.age = 21;
   u3.name = "张三";
   if(u1.equals(u2)){
      System.out.println(" 两个对象堆内存相等");
   }else {
  System.out.println(" 两个对象堆内存不相等");
   }
  
   if(u1.equals(u3)){
      System.out.println(" 两个对象堆内存相等");
   }else {
  System.out.println(" 两个对象堆内存不相等");
   }
  }
}
 

原创粉丝点击