Java的面相對象理念是學(xué)習(xí)Java基礎(chǔ),只有深刻理解了什么事面向?qū)ο蟛拍芎芎玫膶W(xué)習(xí)Java,那么什么是面向?qū)ο竽兀拷裉煨【幣c大家一起了解一下。
Java中一切皆是對象!
注意:8種基本數(shù)據(jù)類型不支持面向?qū)ο蟮木幊虣C(jī)制,基本數(shù)據(jù)類型的數(shù)據(jù)也不具備“對象”的特性:沒有成員變量、方法可以被調(diào)用。
為解決8種基本數(shù)據(jù)類型不能當(dāng)成Object類型(所有類的父類)變量使用的問題,Java提供了包裝類的概念,為8種基本數(shù)據(jù)類型分別定義了相應(yīng)的引用類型,例如:int的包裝類是Integer,包裝類可以把8種基本數(shù)據(jù)類型的值包裝成對象使用。包裝類是Java自帶類,位于Java.lang包下。
Integeri=newInteger(10);
上面例子中,i只是一個對象的引用,存放在棧中,而實際的數(shù)值10則是放在堆里。
封裝:
將對象的狀態(tài)信息(eg:Person對象的age變量)隱藏在對象內(nèi)部,外部程序只能通過該類提供的方法來實現(xiàn)對內(nèi)部信息的操作和訪問。
繼承:
繼承就是子類繼承父類的特征和行為,使得子類具有父類的各種屬性和方法(重用父類代碼)。
多態(tài)(難點):
Java引用變量,編譯時類型由聲明該變量時使用的類型決定,運行時類型由實際賦給該變量的對象決定(即子類對象賦給父類變量),如果編譯時類型和運行時類型不一致,就可能出現(xiàn)多態(tài)。
1.多態(tài)定義:相同類型的(引用)變量,調(diào)用同一個方法(父類和子類都有的同名方法)時呈現(xiàn)出多種不同的行為特征。
當(dāng)引用變量polymophicBc編譯時類型為BaseClass類型,而運行時類型為SubClass類型,運行時調(diào)用該引用變量的方法時,其方法行為總是表現(xiàn)出子類SubClass方法的行為特征,而不是父類BaseClass方法的行為特征。
BaseClasspolymophicBc=newSubClass();
2.多態(tài)的條件:有繼承關(guān)系;子類重寫父類方法;父類引用變量指向子類對象。
3.優(yōu)點:可以使程序有良好的擴(kuò)展,并可以對所有類的對象進(jìn)行通用處理。當(dāng)一個新的情景出現(xiàn)時,無須對現(xiàn)有的代碼進(jìn)行改動,而只需要增加一個新的類和新的同名方法。
更多最新咨詢盡在動力節(jié)點微信平臺《動力節(jié)點Java學(xué)院》