Java的面相對象理念是學習Java基礎,只有深刻理解了什么事面向對象才能很好的學習Java,那么什么是面向對象呢?今天小編與大家一起了解一下。
Java中一切皆是對象!
注意:8種基本數據類型不支持面向對象的編程機制,基本數據類型的數據也不具備“對象”的特性:沒有成員變量、方法可以被調用。
為解決8種基本數據類型不能當成Object類型(所有類的父類)變量使用的問題,Java提供了包裝類的概念,為8種基本數據類型分別定義了相應的引用類型,例如:int的包裝類是Integer,包裝類可以把8種基本數據類型的值包裝成對象使用。包裝類是Java自帶類,位于Java.lang包下。
Integeri=newInteger(10);
上面例子中,i只是一個對象的引用,存放在棧中,而實際的數值10則是放在堆里。
封裝:
將對象的狀態信息(eg:Person對象的age變量)隱藏在對象內部,外部程序只能通過該類提供的方法來實現對內部信息的操作和訪問。
繼承:
繼承就是子類繼承父類的特征和行為,使得子類具有父類的各種屬性和方法(重用父類代碼)。
多態(難點):
Java引用變量,編譯時類型由聲明該變量時使用的類型決定,運行時類型由實際賦給該變量的對象決定(即子類對象賦給父類變量),如果編譯時類型和運行時類型不一致,就可能出現多態。
1.多態定義:相同類型的(引用)變量,調用同一個方法(父類和子類都有的同名方法)時呈現出多種不同的行為特征。
當引用變量polymophicBc編譯時類型為BaseClass類型,而運行時類型為SubClass類型,運行時調用該引用變量的方法時,其方法行為總是表現出子類SubClass方法的行為特征,而不是父類BaseClass方法的行為特征。
BaseClasspolymophicBc=newSubClass();
2.多態的條件:有繼承關系;子類重寫父類方法;父類引用變量指向子類對象。
3.優點:可以使程序有良好的擴展,并可以對所有類的對象進行通用處理。當一個新的情景出現時,無須對現有的代碼進行改動,而只需要增加一個新的類和新的同名方法。
更多最新咨詢盡在動力節點微信平臺《動力節點Java學院》