日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Object类toString()和equals()方法剖析

發布時間:2025/1/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Object类toString()和equals()方法剖析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Object類是Java語言中的根類,即所有類的父類。它中描述的所有方法子類都可以使用。所有類在創建對象的時候,最終找的父類就是Object。

toString()方法

由于toString方法返回的結果是內存地址,而在開發中,經常需要按照對象的屬性得到相應的字符串表現形式,因此也需要重寫它。

/** String toString() : 返回該對象的字符串表示* return getClass().getName() + "@" + Integer.toHexString(hashCode());* getClass():返回一個字節碼對象* Integer.toHexString():返回指定參數的十六進制字符串形式* hashCode():返回該對象的哈希碼值(內部地址)* boolean equals(Object obj) * */ public class ObjectDemo {public static void main(String[] args) {Student s = new Student();s.name = "zhangsan";s.age = 18;System.out.println(s.toString());//com.zhangxueliang.Student@737951b0System.out.println(s);//說明我們輸出一個對象就是默認輸出這個對象的toString()方法} }class Student extends Object {String name;int age;/*public String toString() {return name + "@" + age;}*/@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + "]";}}

equals()方法

equals方法,用于比較兩個對象是否相同,它其實就是使用兩個對象的內存地址在比較。Object類中的equals方法內部使用的就是==比較運算符。
在開發中要比較兩個對象是否相同,經常會根據對象中的屬性值進行比較,也就是在開發經常需要子類重寫equals方法根據對象的屬性值進行比較。

/** boolean equals(Object obj) * 使用==來比較兩個對象是否相等,則比較地址值是否相等*/ public class ObjectDemo2 {public static void main(String[] args) {Person p = new Person("zhangsan",18);Person p2 = new Person("zhangsan",19);//boolean flag = p.equals(p2);boolean flag = p.equals(new ArrayList());System.out.println(flag);} }class Person {String name;int age;public Person(String name,int age) {this.name = name;this.age = age;}@Overridepublic boolean equals(Object obj) {//提高效率if (this == obj)return true;if (obj == null)return false;//提高健壯性if (getClass() != obj.getClass())return false;//向下轉型Person other = (Person) obj;if (age != other.age)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}/*@Overridepublic boolean equals(Object o) {//提高效率 當前對象和傳遞進來的對象地址值一樣,則不用比較成員if(this == o) {return true;}//提高代碼的健壯性if(this.getClass() != o.getClass()) {return false;}//向下轉型Person other = (Person) o;if(!this.name.equals(other.name)) {return false;}if(this.age != other.age) {return false;}return true;}*/ }

總結

以上是生活随笔為你收集整理的Object类toString()和equals()方法剖析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。