Object類
JAVA的類主要劃分為三種
(1)JDK提供的官方類庫
(2)第三方提供的類庫(工具、框架)
(3)開發自定義類
Object
object是JDK中的一個類,是所有類的直接父類或間接父類
重寫Object類
主要講toString()、equals()、hashCode()
public String toString() :以字串的形式返回物件的資訊;
public boolen equals(object obj) :判斷兩個物件是否相等;
public native int hashCode(): 返回物件的hash值
1.toString()
public class People {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "人類\t" +
"編號=" + id +
", 姓名=" + name ;
}
}
public class Test {
public static void main(String[] args) {
People people = new People();
people.setId(1);
people.setName("胡一");
System.out.println(people);
}
}
2.equals()
==:比較的永遠是變數的值(物件的儲存地址)
equals:判斷兩個物件是否相等
equals重寫:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
People people = (People) o;
return id == people.id &&
Objects.equals(name, people.name);
}
People people = new People();
people.setId(1);
people.setName("胡一");
System.out.println(people);
People people1 = new People();
people.setId(1);
people.setName("胡二");
Integer a =1;
Integer b = 1;
System.out.println(people.equals(people1)); //false
System.out.println(a.equals(b)); //true
3.hashCode
用來獲取物件的雜湊值,雜湊值是根據物件的記憶體地址和物件的資訊對映出來的一個數值。
效率高於equals
任何兩個物件的記憶體地址肯定不一樣,但實際開發如果兩個物件的屬性值完全一樣的時候就認為同一個物件,那麼雜湊值也相同。
實際開發通過equals和hashCode一同使用來判斷兩個物件是否相同,首先判斷兩個物件的雜湊值是否相同,若雜湊值不同則一定不同,若雜湊值相同可能物件不同,這時需要通過equals來進一步判斷,最終得出是否相等。
@Override
public int hashCode() {
return this.id*this.name.hashCode();
}
相關文章
- Java常用類-Object類JavaObject
- JAVA Object類JavaObject
- Object類toString()Object
- Object類物件剖析Object物件
- 常見物件-Object類物件Object
- Object類-equals()、==、hashCode()Object
- 【轉】Object類的常用方法Object
- Object類有哪些公用方法?Object
- java之Object類介紹JavaObject
- Java Object類的各個方法JavaObject
- JDK原始碼閱讀-Object類JDK原始碼Object
- Java™ 教程(Object作為超類)JavaObject
- JDK 原始碼分析(1) Object類JDK原始碼Object
- Java中Object類的常用方法JavaObject
- 五、Object-C 類NSObjectObject
- Object類和String類equals方法的區別Object
- 理解Java中物件基礎Object類Java物件Object
- JavaBean重寫Object類中的方法JavaBeanObject
- JAVA中object類中toString()方法JavaObject
- Object所有類的超類之幾個方法詳析Object
- JavaSE基礎知識學習-----Object類JavaObject
- 深入研究java.lang.Object類薦JavaObject
- JAVA集合類簡要筆記 - 內部類 包裝類 Object類 String類 BigDecimal類 system類Java筆記ObjectDecimal
- Java中Class類與Object類之間有什麼關係?JavaObject
- Java類是如何預設繼承Object的?Java繼承Object
- 【Java面試題】之Object類中方法詳解Java面試題Object
- 為普通Object新增類似AttachedProperty的屬性Object
- 夯實Java基礎系列9:深入理解Class類和Object類JavaObject
- Java面試系列第2篇-Object類中的方法Java面試Object
- python3父類需要繼承object嗎?Python繼承Object
- JDK原始碼閱讀:Object類閱讀筆記JDK原始碼Object筆記
- Object C學習筆記14-分類(category)Object筆記Go
- 談談Object類的終止器的實現!Object
- Java Object類 和 String類 常見問答 6k字+總結JavaObject
- String類中的equals方法與Object類中的equals方法的不同點Object
- Kotlin 知識梳理(4) 資料類、類委託 及 object 關鍵字KotlinObject
- Java核心技術第五章——2.Object類JavaObject
- JDK1.8原始碼閱讀筆記(1)Object類JDK原始碼筆記Object