Java——面向對象(一)



一:類java

類定義語法this

[修飾符]class  //修飾符能夠是public,final,abstract  類名必須是由一個或多個有意義的單詞連綴而成的,每一個單詞首字母大寫,其餘字母所有小寫
對象

{繼承

零到多個構造器定義//建立對象[修飾符] 構造器名(形參列表)
遞歸

零到多個成員變量//[修飾符]類型 變量名[=默認值]public,protected,private,static,final  第一個單詞首字母小寫,然後每一個單詞首字母大寫
內存

零到多個方法//[修飾符]方法返回值類型 方法名(形參)public,abstract,protected,private,static,final  返回值能夠是任何類型
編譯

}class

static用於區分紅員變量,方法,內部類,初始化塊是屬於類自己仍是屬於實例。java類的做用:定義變量;建立對象;調用類的類方法或訪問類的類變量變量

二:對象權限

構造器建立對象,經過new關鍵字來調用某個類的構造器

Java對象的做用:訪問對象的實例變量;調用對象的方法。沒有使用static修飾的普通方法和成員變量只能夠經過實例來調用。

類也是一種引用數據類型,對象的成員變量數據實際存放在堆內存裏。this關鍵字老是指向調用該方法的對象:a:構造器中引用該構造器正在初始化的對象。b:在方法中引用調用該方法的對象。Java容許對象的一個成員直接調用另外一個成員。static修飾的方法中不能使用this引用。this在構造器中表明該構造器正在初始化的對象。若是在某個方法中把this做爲返回值,則能夠屢次連續調用同一個方法。堆內存裏保存了對象自己,棧內存中保存了引用該對象的引用變量。

三:方法

方法在邏輯上要麼屬於類,要麼屬於對象。若是方法用static修飾,這個方法屬於類,沒有則屬於這個類的實例。

方法必須使用類或對象來做爲調用者,即類.方法名/對象.方法名。同一個類裏的方法調用另外一個方法時,若是被調用的是普通方法,則默認使用this做爲調用者,若是被調用的是靜態方法,則默認使用類做爲調用者。

java裏參數傳遞方式:值傳遞  一個方法中最多隻能有一個個數可變的形參。

一個方法體內調用它自身,稱爲方法遞歸。遞歸必定要向已知方向遞歸。

重載:Java容許一個類裏定義多個同名方法,只要形參列表不一樣就行。(兩同一不一樣:類名方法名相同,形參不一樣)不能使用方法返回值類型做爲區分方法重載的依據。形參的值由方法的調用者負責指定。形參存儲在棧裏。

四:成員變量和局部變量

成員變量:在類裏定義的變量,實例變量(不以static修飾),類變量(以static修飾)

局部變量:在方法裏定義的變量,形參,方法局部變量,代碼塊局部變量  局部變量除了形參以外,都必須顯示初始化。保存在棧內存。

訪問變量語法:類.類變量/實例.實例變量/實例.類變量

java容許局部變量和成員變量同名。

五:隱藏和封裝

封裝:將對象的狀態信息隱藏在對象內部。

訪問控制符:private——>protected——>public訪問控制級別由小到大

private:當前類訪問權限

protected:子類訪問權限

public:公共訪問權限

Java容許將一組功能相關的類放在同一個package下,從而組成邏輯上的類庫單元。

六:構造器

構造器最大的用處就是在建立對象時進行初始化。構造器名必須與類名相同。

構造器重載與方法重載基本類似,形參不一樣

構造器不能直接被調用,構造器必須使用new關鍵字來調用。使用this調用另外一個重載的構造器只能在構造器中使用,並且必須做爲構造器執行體的第一條語句。

七:繼承

經過extends 關鍵字實現。父類和子類的關係,是一種通常和特殊的關係,java的子類不能得到父類的構造器。每一個類最多隻能有一個直接父類。

方法的重寫:(兩同兩小一大原則)兩同:方法名相同、形參列表相同。兩小:子類方法返回值類型應比父類方法返回值類型更小或相等,子類方法聲明拋出的異常類應該比父類方法聲明拋出的異常類更小或相等,一大指的是子類方法的訪問權限應比父類方法的訪問權限更大或相等。

可以使用super限定來調用父類被覆蓋的實例方法。super不能出如今static修飾的方法中。

八:多態

Java引用變量有兩個類型,一個是編譯時類型,一個是運行時類型,若是編譯時類型和運行時類型不同,就會出現多態。Java容許把一個子類對象直接賦給一個父類引用變量,無需任何類型轉換。instance of運算符的前一個操做數一般是一個引用類型變量,後一個操做數一般是一個類,它用於判斷前面的對象是不是後面的類,或者其子類,實現類的實例。使用instance of 運算符前面操做數的編譯時類型要麼與後面的類相同,要麼與後面的類具備父子繼承關係,不然會引發編譯錯誤。

相關文章
相關標籤/搜索