您好,歡迎來到賦能網(wǎng)!

面向?qū)ο蟾呒壧匦設(shè)bject類

賦能網(wǎng) 2023-06-11 244

Object類的特點

Object類是所有類的根父類, 也就是說如果一個類沒有顯式聲明父類, 那么這個類的父類就是Object類, 所以, Object類中的屬性和方法會被所有類繼承, 都可以直接調(diào)用.

類中的典型方法

1. toString()

public String toString() 這個方法返回當(dāng)前對象的一個字符串表示, 通常用于描述這個對象的內(nèi)容.

面向?qū)ο蟾呒壧匦設(shè)bject類

這個方法也會在對象被打印和與字符串拼接時自動調(diào)用, 結(jié)果還是一個字符串.

2. equals()

表示兩個對象內(nèi)容是否相等, 通常情況下, 兩個不同的對象是不相等的, 但是我們可以通過覆蓋這個方法,實現(xiàn)兩個內(nèi)容相等, 但不同的對象之間具有等同性比較能力.

3. hashCode()

當(dāng)兩個對象的內(nèi)容相等時, equals方法的結(jié)果就應(yīng)該返回true, 但同時這兩個對象調(diào)用hashCode方法返回的哈希碼值也必須要相等, 相同的道理, 兩個hashCode碼值不同的對象, 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;

面向?qū)ο蟾呒壧匦設(shè)bject類

}

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 // 可以完成真實的比較

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);

}

// 返回對象的字符串表示, 通常在打印對象時調(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, 因為比較兩個對象的地址

boolean b = p1.equals(p2); // 返回true, 因為比較兩個對象的內(nèi)容

System.out.println(b);

System.out.println(p1.hashCode()); // 兩個對象的哈希碼也都一樣

System.out.println(p2.hashCode());

System.out.println(p1); // 打印對象時, 打印的其實是對象的toString()方法的結(jié)果

}

}

Object的使用

Object類型通常用于表示任意對象的引用類型, 使用Object類型可以兼容任意對象, 很靈活方便, 也因為Object類是根父類, 所以其中的方法具有普遍性, 便于統(tǒng)一處理.

Object的注意點

因為Object類型是父類類型, 所以O(shè)bject類型的對象究竟是什么類型的對象就變得非常復(fù)雜, 所以想要處理不同的子類對象, 比較麻煩, 需要配合instanceof操作符和類型轉(zhuǎn)換。

想要了解跟多關(guān)于java培訓(xùn)課程內(nèi)容歡迎關(guān)注達(dá)內(nèi)java培訓(xùn),達(dá)內(nèi)除了這些技術(shù)文章外還有免費的高質(zhì)量大java培訓(xùn)課程視頻供廣大學(xué)員下載學(xué)習(xí)。

本文鏈接:

本文章“面向?qū)ο蟾呒壧匦設(shè)bject類”已幫助 244 人

免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579

如果本頁不是您要找的課程,您也可以百度查找一下: