Object類的特點(diǎn)
Object類是所有類的根父類, 也就是說(shuō)如果一個(gè)類沒(méi)有顯式聲明父類, 那么這個(gè)類的父類就是Object類, 所以, Object類中的屬性和方法會(huì)被所有類繼承, 都可以直接調(diào)用.
類中的典型方法
1. toString()
public String toString() 這個(gè)方法返回當(dāng)前對(duì)象的一個(gè)字符串表示, 通常用于描述這個(gè)對(duì)象的內(nèi)容.
這個(gè)方法也會(huì)在對(duì)象被打印和與字符串拼接時(shí)自動(dòng)調(diào)用, 結(jié)果還是一個(gè)字符串.
2. equals()
表示兩個(gè)對(duì)象內(nèi)容是否相等, 通常情況下, 兩個(gè)不同的對(duì)象是不相等的, 但是我們可以通過(guò)覆蓋這個(gè)方法,實(shí)現(xiàn)兩個(gè)內(nèi)容相等, 但不同的對(duì)象之間具有等同性比較能力.
3. hashCode()
當(dāng)兩個(gè)對(duì)象的內(nèi)容相等時(shí), equals方法的結(jié)果就應(yīng)該返回true, 但同時(shí)這兩個(gè)對(duì)象調(diào)用hashCode方法返回的哈希碼值也必須要相等, 相同的道理, 兩個(gè)hashCode碼值不同的對(duì)象, equals方法一定返回false.
public class Point {private int x;
private int y;
public Point() {}
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public void setX(int x) {
this.x = x;
}
public int getX() {
return x;
}
public void setY(int y) {
this.y = y;
}
public int getY() {
return y;
}
public String say() {
return "X:" + x + ",Y:" + y;
}
@Override // 可以完成真實(shí)的比較
public boolean equals(Object obj) {
if (obj instanceof Point && this.x == ((Point)obj).x && this.y == ((Point)obj).y) {
return true;
}
return false;
}
@Override
public int hashCode() {
return Integer.parseInt(x * 10 + "" + y * 10);
}
// 返回對(duì)象的字符串表示, 通常在打印對(duì)象時(shí)調(diào)用
@Override
public String toString() {
return "x:" + x + ",y:" + y;
}
}
public class PointTest {
public static void main(String[] args) {
Point p1 = new Point(10, 20);
Point p2 = new Point(10, 20);
System.out.println(p1 == p2); // 打印false, 因?yàn)楸容^兩個(gè)對(duì)象的地址
boolean b = p1.equals(p2); // 返回true, 因?yàn)楸容^兩個(gè)對(duì)象的內(nèi)容
System.out.println(b);
System.out.println(p1.hashCode()); // 兩個(gè)對(duì)象的哈希碼也都一樣
System.out.println(p2.hashCode());
System.out.println(p1); // 打印對(duì)象時(shí), 打印的其實(shí)是對(duì)象的toString()方法的結(jié)果
}
}
Object的使用
Object類型通常用于表示任意對(duì)象的引用類型, 使用Object類型可以兼容任意對(duì)象, 很靈活方便, 也因?yàn)镺bject類是根父類, 所以其中的方法具有普遍性, 便于統(tǒng)一處理.
Object的注意點(diǎn)
因?yàn)镺bject類型是父類類型, 所以O(shè)bject類型的對(duì)象究竟是什么類型的對(duì)象就變得非常復(fù)雜, 所以想要處理不同的子類對(duì)象, 比較麻煩, 需要配合instanceof操作符和類型轉(zhuǎn)換。
想要了解跟多關(guān)于java培訓(xùn)課程內(nèi)容歡迎關(guān)注達(dá)內(nèi)java培訓(xùn),達(dá)內(nèi)除了這些技術(shù)文章外還有免費(fèi)的高質(zhì)量大java培訓(xùn)課程視頻供廣大學(xué)員下載學(xué)習(xí)。
本文鏈接:
本文章“面向?qū)ο蟾呒?jí)特性O(shè)bject類”已幫助 244 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579