Java Object類

2018-01-18 17:38 更新

Java面向?qū)ο笤O(shè)計(jì) -  Java Object類


Java在java.lang包中有一個(gè)Object類。

所有Java類都直接或間接擴(kuò)展Object類。

所有Java類都是Object類的子類Object類是所有類的超類。

Object類本身沒有超類。

Object類的引用變量可以保存任何類的對象的引用。

以下代碼聲明對象類型的引用變量obj:

Object obj;

方法

Object類有九個(gè)方法,可以在Java中的所有類中使用。

  • public String toString()
    它是實(shí)現(xiàn)在Object類中,我們可以自定義它。
    它返回對象的字符串表示形式。
    通常,它用于調(diào)試目的。
  • public boolean equals(Object obj)
    它在Object類中實(shí)現(xiàn),我們可以自定義它。
    它用于比較兩個(gè)對象的相等性。
  • public int hashCode()
    它在Object類中實(shí)現(xiàn),我們可以自定義它。
    它返回對象的哈希碼(整數(shù))值。
  • protected Object clone() throws
    CloneNotSupportedException
    它不在Object類中實(shí)現(xiàn),我們可以通過覆蓋克隆方法來自定義它。
    它用于創(chuàng)建對象的副本。
  • protected void finalize() throws Throwable
    它不是在Object類中實(shí)現(xiàn),我們可以自定義它
    它在對象被銷毀之前被垃圾收集器調(diào)用。
  • public final Class getClass()
    它在Object類中實(shí)現(xiàn),我們不能自定義它。
    它返回對對象的Class對象的引用。
  • public final void notify()
    它是在Object類中實(shí)現(xiàn)的,我們不能自定義它。
    此方法通知對象的等待隊(duì)列中的一個(gè)線程。
  • public final void notifyAll()
    它是在Object類中實(shí)現(xiàn)的,我們不能自定義它。
    此方法通知對象的等待隊(duì)列中的所有線程。
  • public final void wait() throws InterruptedException
    public final void wait(long timeout) throws InterruptedException
    public final void wait (long timeout, int nanos) throws InterruptedException
    它是在Object類中實(shí)現(xiàn)的,我們不能自定義它。
    使對象的等待隊(duì)列中的線程等待,無論是否超時(shí)。

例子

以下代碼顯示如何重新實(shí)現(xiàn)Object類的toString()方法。

public class Test   {
    public String toString()  {
        return "Here  is a  string";
    }
}

什么是對象類?

Java中的每個(gè)對象都屬于一個(gè)類。

Object類的getClass()方法返回Class對象的引用。

以下代碼顯示了如何獲取Cat對象的Class對象的引用:

Cat  c  = new Cat();
Class catClass  = c.getClass();

Class類是通用的,其形式類型參數(shù)是由其對象表示的類的名稱。

我們可以使用泛型重寫上面的語句。

Class<Cat>   catClass = c.getClass();


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號