Object類
Object類是所有類的父類,如果一個(gè)類沒有使用extends關(guān)鍵字明確標(biāo)識(shí)繼承另外一個(gè)類,那么這個(gè)類默認(rèn)繼承Object類。
Object類中的方法,適合所有子類
1. toString()方法
在Objectl類里面定義toString()方法的時(shí)候返回的對象的哈希code碼(對象地址在字符串)
可以通過重寫toString()方法表示出對象的屬性
public?class?Cat?extends?Animal?{???public?String?name="小貓";//子類屬性????//使用toString方法進(jìn)行輸出對象屬性????@Override????public?String?toString()?{????????return?"Animal[name="+name+"]";????}}
public?class?Initail?{????public?static?void?main(String[]?args)?{????????//創(chuàng)建子類對象????????Cat?cat=new?Cat();????????//調(diào)用子類方法????????System.out.println(cat);????}}
2. equals()方法
比較的是對象的引用是否指向同一塊內(nèi)存di地址
public?class?Initail?{????public?static?void?main(String[]?args)?{????????//創(chuàng)建子類對象1????????Cat?cat=new?Cat();????????//創(chuàng)建子類對象2????????Cat?cat2=new?Cat();????????if(cat.equals(cat2)){????????????System.out.println("不相同");????????}else?{????????????System.out.println("相同");????????}????}}
在進(jìn)行引用類型進(jìn)行判斷時(shí),使用==和equals()一樣,比較的也是內(nèi)存地址,雙等在進(jìn)行基本類型的判斷時(shí),判斷的是基本類型的值是否相等。
但我們想要的是進(jìn)行比較對象的值是否一樣,那么該怎么做?
父類方法不滿足子類使用就對其進(jìn)行重寫。
@Override????public?boolean?equals(Object?obj)?{????????if?(this==obj)//比較兩個(gè)引用的地址是否相同,????????????//?如果兩個(gè)地址相同則說明指向了一個(gè)對象,兩個(gè)對象肯定相等????????????return?true;????????if(obj==null)//如果為空值就不再進(jìn)行比較????????????return?false;????????if(getClass()!=obj.getClass())//getClass()可以得到一個(gè)類對象????????????//判斷類的類型是否相同????????????return?false;????????Cat?other=(Cat)?obj;????????if?(name!=other.name)????????????//最后在進(jìn)行判斷類的值是否相同????????????return?false;????????return?true;????}
什么是類對象
我們new一個(gè)類得到的是類的對象,對象調(diào)用getClass()我們得到是類對象,類對象描述的是類的代碼信息,就是這個(gè)類有哪些屬性,屬性的類型,變量名是什么,有哪些方法,方法名是什么。類的對象是對象的數(shù)據(jù)信息,屬性值的信息。我們通??梢酝ㄟ^類對象判斷類的類型。
以上就是北大青鳥長沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)的小編針對“Java object類的常用子類”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。