java:Object类方法 toString()和equals()

1,Object类是所有java类的父类。

2,Object中native(本地)方法,是非java语言实现的,可能是c或c++语言实现的,当Object类调用native 方法时,JVM(java虚拟机)对其进行转化后调用。

如:public native int hashCode()非java code 实现,返回对象的Hash值(对象的唯一标示)。

3,toString 方法。

public String toString()

 { 

        return getClass().getName() + "@" + Integer.toHexString(hashCode());     //这个就是toString方法。

}

当:

Object object;

System.out.print(object);// 输出对象时,结果会自动调用toString方法,返回getClass().getName() + "@" + Integer.toHexString(hashCode())格式字符串。

4,对象的比较 equals和==方法

public boolean equals(Object obj) {           
        return (this == obj);        //比较两个对象是否相等。一般都会被子类重写  。

   }

"==" 一般用于基本数据类型比较。

若用作两个引用对象比较,仅当引用变量引用同一个对象时,才返回true,否则false。

  void  EqualCompare()
    {
     String s1 = new String("Hello");
     String s2 = new String("Hello");
      String s3 = "Hello";
      String s4 = "Hello";     //未使用new,s4引用既存的对象(编译器创建对象之前先进行检测"Hello"是否已经存

                                                                                              在,若存在,则返回原对象的引用)
      System.out.println(s1.equals(s2));  //  true    x1行对象内容相同
      System.out.println(s1 ==s2);   // false       两变量引用不同对象
      System.out.println(s3.equals(s4)); //true   两变量引用相同对象
      System.out.println(s3 ==s4);    // true        两变量引用相同对象
    }

比较对象时,一般用equals()方法。

不同的类可方便的对该对象进行覆盖。

String类就覆盖了Object类的equals()方法,所以x1行输出true.

a==b 如果a,b引用同一对象,则返回true;

a.equals(b)  如果a对象内容和b对象内容相同,则返回true

如果未重载equals()方法的类对象使用该方法与另一个对象进行比较,则调用Object的equals()方法,仍然是对象的比较,返回值为false。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值