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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Object类—复写equals方法,hashCode方法,toString方法

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Object类—复写equals方法,hashCode方法,toString方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Object:所有類的根類。 Object是不斷抽取而來,具備著所有對象都具備的共性內容。
class Person extends Object {private int age;Person(int age) {this.age = age;}/* 老方法:比較Person的年齡。是否是同齡人 */// public boolean compare(Person p) { return this.age ==// p.age; }/* 新方法:一般都會覆蓋此方法,根據對象的特有內容,建立判斷對象是否相同的依據。(常用復寫equals) */public boolean equals(Object obj)// Object obj = p2;隱藏著向上轉型{// 健壯性判斷if (!(obj instanceof Person)) {throw new ClassCastException("類型錯誤");}Person p = (Person) obj;// 向下轉型,否則無法調用Person的屬性agereturn this.age == p.age;}/* 復寫hashcode() */// public int hashCode() {// return age;// }/* 復寫toString() */// public String toString() {// return "Person:" + "age=" + age;// } }class ObjectDemo {public static void main(String[] args) {Person p1 = new Person(60);Person p2 = new Person(20);// System.out.println(p1.equals(p2));// System.out.println(p1);// 默認調用p1.toString// System.out.println(Integer.toHexString(p1.hashCode()));/* 是不是同一個類 */// Class clazz1 = p1.getClass();// Class clazz2 = p2.getClass();// System.out.println(clazz1 == clazz2);// System.out.println(clazz1.getName());// Person// System.out.println(p1.toString());// Person@61de33// System.out.println(p1.getClass().getName() + "$" +// Integer.toHexString(p1.hashCode()));// Person$61de33// System.out.println("==:" + (p1 == p2));// System.out.println("equals:" + p1.equals(p2)); //// equals()方法,比較的是地址值。對于非字符串變量,equals比較的是內存的首地址,這時候和==是一樣的,即比較兩邊指向的是不是同一個對象。} }

  

?

轉載于:https://www.cnblogs.com/kkkky/p/6572660.html

總結

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

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