------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">java培訓</a>、期待與您交流! ----------
面向對象
面向對象是相對面向過程而言
面向過程強調的是行爲步驟,面向對象強調的是將行爲以對象的形式進行封裝,然後對對象進行操作。
Java通過創建類再用類建立對象。
類是某一類對象的抽象描述,對象是類的實例化。
面向對象程序設計的特點:繼承、多態和封裝。
繼承:用父類派生出子類,子類具有父類的非私有成員變量和成員方法。關鍵字extends
多態:不同的子類重寫父類的某個方法,通過調用父類中該方法可實現調用所有子類中相應的方法。
封裝:類將對象的屬性和行爲封裝起來,對客戶暴露一定的接口,隱藏其實現細節。
權限修飾符:
修飾類———只能用public (共用)、abstract(抽象)、 final(終態)。
當不加修飾符時表示該類具有包存取範圍。
修飾成員變量和成員方法————public、private、protected
訪問包位置 |
類修飾符 |
||
Private |
Protected |
Public |
|
本類 |
可見 |
可見 |
可見 |
同包其他類或子類 |
不可見 |
可見 |
可見 |
其他包的類或子類 |
不可見 |
不可見 |
可見 |
局部變量的聲明週期和作用域:局部變量在方法被執行時創建,方法執行結束被銷燬。
複合語句內部定義的局部變量的作用域只在複合語句內部,在互相嵌套的區域定義同名同類型的變量視爲重複定義,是錯誤。
this關鍵字:java中this代表本類對象的引用。
構造方法:
構造方法是類實例化創建對象時調用的函數,構造方法沒有返回值,定義時也不用寫void,構造方法可以有多個重載形式,如果定義類時未定義構造方法,編譯器會隱式定義一個無參的構造方法。
在構造方法中用this調用其它構造方法時,該語句應寫在方法的第一句,用super調用父類構造方法時,也應寫在方法第一句。
靜態:
靜態成員和靜態方法是在類加載時創建的,可不同過對象直接調用。靜態代碼塊在類加載時執行一次,之後不再執行。
在靜態方法中不能調用非靜態成員和方法。
對象創建
在聲明瞭一個引用而未創建該對象時,該引用只是一個值爲null未指向任何對象的空引用,不能對其調用對象方法,否則會發生空指針異常。
引用存在於棧內存中,對象存在於對內存。
對象比較
“==”比較的是兩個對象是不是同一個對象。
equals方法要看要比較的對象中equals方法是怎麼寫的。
對象銷燬
當某個對象不再被任何引用指向時,該對象視爲垃圾,由java的垃圾回收機制進行銷燬。