Object类(二)equals方法

equals方法:
     
     Java中的“==”比较的是引用的地址是否相同,而不是内存空间的内容是否相同
     基本数据类型可以使用“==”进行判断,但是引用数据类型要想比较内容是否相同就不能使用“==”。

int a=1; int b=1;内存图如下所示。


示例演示equals方法
     分析:首先定义一个Address类,定义add函数。然后在Test类中创建三个对象分别采用“==”和equals方法进行判断是否相等。

//编写引用数据类型Address类
public   class  Address {
      private  String  prov  ;
      private  String  city  ;

      public  Address() {
         super  ();
         //  TODO  Auto-generated constructor stub
    }

      public  Address(String prov, String city) {
         super  ();
         this  . prov  = prov;
         this  . city  = city;
    }

      public  String getProv() {
         return   prov  ;
    }

      public   void  setProv(String prov) {
         this  . prov  = prov;
    }

      public  String getCity() {
         return   city  ;
    }

      public   void  setCity(String city) {
         this  . city  = city;
    }

      public   boolean  equals(Object o) {
         // 判断两者引用的是否为同一个堆内存
         if  ( this  == o)
             return   true  ;
         // 两者引用的堆内存不同,这是需要比较内存空间中的内容
         else  {
             // 先判断对象的类型
             if  (o  instanceof  Address) {
                 //将o进行强制类型转换,转换为Address
               Address add = (Address) o;
                 // 比较内容
                 if  ( this  . prov  == add.getProv() &&  this  . city  == add.getCity()) {
                    return   true  ;
               }  else  {
                    return   false  ;
               }
           }  else  {
                 return   false  ;
           }
       }

    }
}

//编写TestAddress类
public  class  TestPerson {
     @SuppressWarnings (  "null" )
     public  static  void  main(String[] args)  throws  CloneNotSupportedException {
    
       Address a1=  new  Address( "海南省"  , "海口"  );
       Address a2=  new  Address( "海南省"  , "海口"  );
       Address a3=a1;
       
       System.  out .println(a1.equals(a2));
       System.  out .println(a1==a3);
    }
}

输出结果:true true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值