java的Object類的學習

2021-07-31 23:13:41 字數 1793 閱讀 5818

object

所有類的公共父類,一旦乙個類沒有顯示地繼承乙個類則其直接父類一定是object。

equals方法

當引用型別呼叫equals方法時,如果沒有重寫equals方法,則比較的是記憶體位址,如果重寫了equals方法則比較的是值的大小,但是string,date等重寫了equals方法,所以比較時不需要重寫equals方法,比較的是值的大小。

public class testequals

}class cat

public boolean equals(object obj)}}

return false;

}}

equals和==的區別

對於==,如果作用於基本資料型別的變數,則直接比較其儲存的 「值」是否相等;

如果作用於引用型別的變數,則比較的是所指向的物件的位址

對於equals方法,注意:equals方法不能作用於基本資料型別的變數

如果沒有對equals方法進行重寫,則比較的是引用型別的變數所指向的物件的位址;

諸如string、date等類對equals方法進行了重寫的話,比較的是所指向的物件的內容。

/**

* 字串的拼接實際上是又new出了乙個新的物件

* */

public class stringtest ;

string string = new string(c);//建立物件

system.out.println(string.hashcode());

string string2 = new string(c);

system.out.println(string2.hashcode());

string string3 = "abc";//常量池建立

system.out.println(string2.hashcode());

string string4 = "abc";//訪問常量池存在的物件

system.out.println(string2.hashcode());

system.out.println(string == string2); //f

system.out.println(string2 == string3); //f

system.out.println(string3 == string4); //t

system.out.println(string == string4); //f

}}

tostring方法

tostring方法可以返回乙個字串型別的關於該類的描述資訊,我們通常會重寫為我們需要的該物件的描述資訊,比如物件各屬性。

在某些情況下,雖然我們並沒有顯示的呼叫tostring方法,但是程式依舊會呼叫tostring方法

直接列印輸出物件時,會呼叫該物件的tostring()方法。//可以不寫出來

列印物件的時候,實際呼叫的物件實際指向的類的自我描述;

public class student 

public void setname(string name)

public int getage()

public void setage(int age)

public char get***()

public void set***(char ***)

public void eat()

@override

public string tostring()

}

Java學習之Object類的equals 方法

喵喵喵 小北今天想把object類中的equals 方法想給大家更詳細的解釋一下下咯 首先equals 方法在預設的情況下比較的是物件的引用是否相同 源 public boolean equals object obj 其實呢string這個時候已經被重寫過了 因此輸出的結果就是 true 那麼如何...

java學習日記 Object類I

object類 object是所有類的父類,如果乙個類沒有使用extends關鍵字明確標識繼承另外乙個類,那麼這個類預設繼承object類。object類中的方法適合所有子類。object類中幾種重要的方法 1,tostring方法 在object類裡面定義tostring方法的時候,返回物件的雜湊...

java中object類 所有類的超類。

object類是所有類的超類,所有的類都是由object類擴充套件而來 但是沒有必要可以的去用類繼承object類。可以用object類引用任何型別的物件 object a new test 只有八種基本型別不是object型別擴充套件而來的 bit short int long char floa...