JAVA基礎——Object類和Class類
阿新 • • 發佈:2019-01-30
什麼是Object類
Object類是所有類根類,其中也有很多方法。
Object類中的方法:
equals方法:
物件1.equals(物件2) ————比較的是兩個物件的記憶體地址是否相同,返回boolean發現其實equals方法有時候並不是我們想要的,我們想要的可能是比較兩個不同物件之間的資料是否相同。
因此我們可以對equals在子類中進行過載,如下
class Num { int num; Num(int num) { this.num=num; } public boolean equals(Object obj) //這裡是個多型特性,向上轉型 { if(obj instanceof Num) { Num x=(Num)obj; //要和Num類內資料比較要強轉成Num類,向下轉型 return this.num==x.num; } else return false; } } class ObjectDemo { public static void main(String[] args) { Num n1=new Num(4); Num n2=new Num(6); System.out.println(n1.equals(n2)); } }
toString方法:
物件.toString()————返回物件的所屬類@地址雜湊值同樣如果想讓toString方法是我們想要的一些方法,也可以進行過載
以上僅僅是Object類中的一些方法而已。更多的參閱API
getClass方法:
物件.getClass()————返回是Class型別的物件。表示這個物件的所屬類,如n1的所屬類是Num;
這裡的Class類是一種新的類,具體見下文。
Class類:
在Java中,當我們編寫一個類,編譯完成後,會生成.class檔案,而這些class檔案也同樣有共性(如他們都有名稱,都有方法等等),我們把它抽取出來定義一個叫Class類。其中Class類中有一個方法叫做getName().顧名思義返回物件的名稱,具體用法見下:
首先為了呼叫這個Class類中的方法,必然要建立Class類的物件,通過Object的getClass方法可以與我們自己建立的類聯絡起來:
Num n1=new Num(4);
Class c=n1.getClass();
System.out.println(c.getName()); //返回的是Num