1. 程式人生 > >Java中Object類的方法(toString方法和equals方法)

Java中Object類的方法(toString方法和equals方法)

Object是所有類的父類(國外成為超類superclass),Object類的方法是相當少的(理解為教室人越多,他們的共同點越少)。 一:toString方法 Object的toString()方法幫助我們返回一個字串,這個字串的格式是固定的:類名@hashcode。這個hashcode是一串數字(16進位制),在Java中叫控制代碼/(虛擬)地址。但是*控制代碼不是記憶體地址*。 toString方法定義的原意是返回能夠描述當前這個類的事例的一串文字。但是在Object中無意義,所以通常需要重寫。 system.out.println(obj) 方法實際上是輸出給定物件的toString方法的返回值。 物件引用存棧裡,物件本身存堆(JVM在管理物件時建立的一個記憶體空間)裡。 靜態方法中,不能使用非靜態屬性和方法;而非靜態方法中可以使用靜態屬性和方法。所以不能在main方法中system.out.println(toString)。 二:equals方法 public boolean equals(Object obj) 該方法的原意: 比較物件與給定內容物件是否一致 在Object中的實現(和==一模一樣): public boolean equals(Object obj) return (this==obj) ==比較的是雙方的值是否相等,p1,p2是兩個引用型別變數,而引用型別變數儲存的是物件的控制代碼(物件的地址那個hashcode值),==在物件比較時描述的是p1,p2是否為同一個物件。而equals方法力圖去描述兩個物件內容是否相等,內容相等取決於業務邏輯需要,可以自行定義比較規則。 equals也是需要重寫的!重寫equals時第一件事就是判斷給定的物件是否和當前物件為同一型別。不是同一型別直接返回false,不具有可比性。equals比較前需要進行安全驗證,確保給定的物件不是null,obj若是null,說明該引用變數沒有指向任何物件,那麼就不能引用obj所指向物件(因為物件不存在)的屬性或方法,若這麼做會引發NullPointerException,空指標異常! 直接將Object類轉為子類是存在風險的!我們不能保證Object和我們要比較的物件是同一型別的,會引發ClassCastException(類造型異常)!

相關推薦

java的初始化建構函式innt函式

        先說一下什麼是初始化,就是在最開始給成員變數一個初始的值,這個時候你就會問了,既然後面還要給它賦值為什麼要給它初始化呢,不是多此一舉麼,首先這個初始化是為了防止程式執行時候出現未知的錯誤,或者bug。        初始化一般在建構函式中進行,它定義了函式的初

JAVAObjecttoString方法

toString public String toString() 返回該物件的字串表示。通常,toString 方法會返回一個“以文字方式表示”此物件的字串。結果應是一個簡明但易於讀懂的資訊表示式。建議所有子類都重寫此方法。 Object 類的 toS

JavaObject方法toString方法equals方法

Object是所有類的父類(國外成為超類superclass),Object類的方法是相當少的(理解為教室人越多,他們的共同點越少)。 一:toString方法 Object的toString()方法幫助我們返回一個字串,這個字串的格式是固定的:類名@hashcode。

javaObject的getClass方法有什麽用以及怎麽使用?

全部 pan spa 下載 index person finalize Beginner ret Object類的getClass的用法: (視頻下載) (全部書籍) Object類中有一個getClass方法,m a r k- t o- w i n:它會返回一個你

JAVAObjectequals()方法的使用

先來看一下官方API中對Object類的equals()方法的介紹: equals public boolean equals(Object obj) 指示其他某個物件是否與此物件“相等”。 引數: obj - 要與之比較的引用物件。 返回: 如果

Java Object方法

Java是單根繼承結構語言,也就是說,Java中所有的類都有一個共同的祖先,這個祖先就是Object類。 如圖所示:Object類中的方法 說明:  1、hashCode和equals函式用來判斷物件是否相同,   ​ equals()用於確認

JAVAObject方法以及finalize函式作用

Object是所有類的父類,任何類都預設繼承Object。 一、Object類中的方法 1.clone方法 保護方法,實現物件的淺複製,只有實現了Cloneable接口才可以呼叫該方法,否則丟擲CloneNotSupportedException異常。 主要是JA

javaObject的finalize()方法的理解

看java api文件的過程中,有時候會發現並非想象中的那麼的通熟易懂,這個時候需要耐心、仔細的看,再加上一定的知識儲備,就更容易看懂了。除此之外,從文件中提煉有用資訊的能力也很重要! 看到finalize()方法的時候覺得很陌生,因為幾乎從沒用過。今天開啟a

JavaObject方法

Object類是所有類的父類,位於java.lang包中,陣列也是Object類的子類 方法有:equals、toString、

javaObject是怎麽回事,幹嘛使的?舉例說明!

urn 。。 als tex index all inner ret load 1.Object Class Object類的作用:m a r k - t o- w i n:(視頻下載) (全部書籍) 在java中,因為所有的類都有共性,所以java的締造者們

javaObject

1.什麼是Object類?有哪些常用方法?   答:1).Object類是所有類的父類,位於java.lang包中。    2).陣列也是Object類的子類。    3).Object類的常用方法有:

javaObject的使用理解

Object類的概述 A:Object類概述 類層次結構的根類 所有類都直接或者間接的繼承自該類 B:構造方法 public Object() 回想面向物件中為什麼說: 子類的構造方法預設訪

javaObject、包裝詳解

Object類 Object是java中的基類,所有的類預設都會繼承Object類,所以所有的類都可以通過Object類接收,完成向上轉型,實現引數統一化。 String覆寫的兩個重要的Object方法

javaobject原始碼

package java.lang; public class Object { /* 一個本地方法,具體是用C(C++)在DLL中實現的,然後通過JNI呼叫。*/ private static native void registerNa

[Linux] Linux重命名文件和文件夾的方法mv命令rename命令

文件夾 方法 get 覆蓋 5-0 測試的 命令 使用 重命名文件 原文鏈接 在Linux下重命名文件或目錄,可以使用mv命令或rename命令,這裏分享下二者的使用方法。 mv命令既可以重命名,又可以移動文件或文件夾。 例子:將目錄A重命名為B mv A B 例子:

javaObject的函式詳解

1.clone方法(淺拷貝) 保護方法,實現物件的淺複製,只有實現了Cloneable接口才可以呼叫該方法,否則丟擲CloneNotSupportedException異常。 主要是JAVA裡除了8種基本型別傳引數是值傳遞,其他的類物件傳引數都是引用傳遞,我們有時候不希望在方法裡講引數改變,

JavaObjecthashCode的底層實現

synchronizer.cpp 471 static markOop ReadStableMark (oop obj) { markOop mark = obj->mark() ; if (!mark->is_being_inflated()) { return mark ;

C++關於重複定義的分析解決方法

在C++中將類以及類中的成員函式的宣告放在.h的標頭檔案中,而將類中成員函式的定義(即實現程式碼)放在.cpp的原始檔中,這樣我們的程式設計起來更加的模組化,但是,這樣的設計也會帶來一些問題,我們分析以下的程式碼,從中找的問題,並給出問題的解決方法。首先我們在VC下新建一個

java“53”個關鍵字含2個保留字

xtend bool 怎麽 swing 繼續 接口實現 nds 大括號 trac 1.java的關鍵字(keyword)有多少個? 51+2個保留字=53個關鍵字(java的關鍵字都是小寫的!!) 2.java的保留字(reserve word)有多少個?問題:分

最小生成樹的兩種方法Kruskal演算法Prim演算法

關於圖的幾個概念定義: 連通圖:在無向圖中,若任意兩個頂點vivi與vjvj都有路徑相通,則稱該無向圖為連通圖。 強連通圖:在有向圖中,若任意兩個頂點vivi與vjvj都有路徑相通,則稱該有向圖為強連通圖。 連通網:在連通圖中,若圖的邊具有一定的意義,每一條邊都對應著一個數,稱