Java基礎-物件導向

來源:互聯網
上載者:User

標籤:

1. 什麼是物件導向?

     將功能封裝進對象,強調具備了功能的對象。      特點: 將複雜的事情簡單化, 物件導向將以前的過程中的執行者,變成了指揮者。  2. 類和對象的關係     類是具體事物的抽象,概念上的定義;對象即是該類事物實實在在存在的個體。     Java中用類描述事物就是描述事物的 屬性行為。       成員變數和局部變數的區別?     |--成員變數: 定義在類中,整個類中都可以被訪問;                          隨著對象的建立而建立,存在於對象所在的堆記憶體中;                          有預設初始化值。     |--局部變數: 只定義在局部範圍內;                          存在於棧記憶體中,作用的範圍結束,變數空間會自動釋放;                          局部變數沒有預設初始化值。       匿名對象:當對對象方法僅進行一次調用時;匿名對象可以作為實際參數進行傳遞。     3. 物件導向的特徵      |--封裝: 隱藏對象的屬性和實現細節,僅對外提供公用訪問方式。           好處:將變化隔離;便於使用;提高重用性;提高安全性。                 建構函式                特點:函數名與類名相同                    不用定義傳回值類型                    不可以寫return語句           作用: 給對象初始化       |--繼承:共性抽取。多個類中存在相同屬性和行為時,將這些內容抽取到單獨一個類中,提高代碼複用性。          好處:提高了代碼的複用性;讓類與類之間產生了關係,多態的前提。          特點:Java只支援單繼承,但是支援多層繼承(繼承體系)         |--抽象類別                 特點:1. 抽象方法只能定義在抽象類別中,抽象類別和抽象方法必須由abstract關鍵字修飾。                    2. 抽象方法只定義方法聲明,並不定義方法實現。                    3. 抽象類別不可以被執行個體化                    4. 只有通過子類繼承抽象類別並實現其中所有抽象方法後,該子類才可以執行個體化。‘           細節:1. 抽象類別中有建構函式,用於給子類對象進行初始化。                    2. 抽象類別可以定義非抽象方法。                    3. 抽象關鍵字abstract不可以與final,private,static共存。                    4. 抽象類別中可以不定義抽象方法。                     模板方法設計模式:當功能內部一部分實現是確定的,一部分實現是不確定的。這時可以把不確定的部分暴露出去,讓子類去實現。         |--介面:介面是對外提供的規則;是功能的擴充;介面的出現降低了耦合性。          具有固定的成員修飾符:成員變數 public static final                                                   成員方法 public abstract           特點:1. 類與介面是實現關係implements。                    2. 介面可以被多實現,避免了單繼承的局限性。                    3. 介面可以多繼承介面。           抽象類別與介面的區別:           1. 抽象類別只能被單繼承;介面可以被多實現。           2. 抽象類別中可以定義非抽象方法,子類可以直接繼承使用;介面中都有抽象方法,需要子類去實現。           3. 抽象類別使用的是is a關係;介面使用的是like a關係。           4. 抽象類別的成員修飾符可以自訂;介面中的成員修飾符是固定的:public。       覆蓋與重載          |-- 覆蓋(override):子父類一模一樣。               注意:父類中的私人方法不可以被覆蓋;                         覆蓋時,子類方法許可權要大於等於父類方法許可權;                         靜態只能覆蓋靜態。          |-- 重載:只看同名函數的參數列表。傳回值可以相同也可以不同,無法以傳回值類型作為重載函數的區分標準。      |--多態:事物的多種體現形式          體現:父類引用指向子類對象。          好處:提高了程式的擴充性。          弊端:當父類引用指向子類對象時,雖然提高了擴充性,但是只能訪問父類中具備的方法,不可以方法子類中特有的方法。          前提:1. 必須要有關係(繼承、實現)。                    2. 通常會有覆蓋操作。           內部類:將一個類定義在另一個類的裡面,               訪問特點:   1. 內部類可以直接存取外部類中的成員,包括私人成員。                                  2. 而外部類要訪問內部類中的成員必須要建立內部類的對象。         4. 關鍵字     |-- this:this代表本類對象的引用。           什麼時候使用this?               當在函數內需要用到調用該函數的對象時,就用this。      |--super:super代表父類引用           作用:當子父類出現同名成員時,可以用super進行區分;                    子類要調用父類建構函式時,可以使用super語句。      關於super()和this()           兩個語句只能有一個定義在第一行,所以只能出現其中一個;           因為super()或者this()都是調用建構函式,建構函式用於初始化,初始化的動作要先完成,所以一定要定義在第一行。      |--static          被static修飾後的成員具有的特點:     隨著類的載入而載入;                                                                  優先於對象存在;                                                                  被所有對象所共用;                                                                  可以直接被類名調用。           注意點:        靜態方法只能訪問靜態成員;                                靜態方法中不可以寫this, super關鍵字;                               主函數是靜態。      |--final:可以修飾類,方法,變數          特點: 被final修飾的類是一個最終類,不可以被繼承;                    被final修飾的方法是一個最終方法,不可以被覆蓋;                    被final修飾的變數是一個常量,只能賦值一次。        5. 異常      Throwable:子類以父類名作為子類的尾碼名。 可拋出性。           |--Error:錯誤,通常出現重大問題時,不編寫針對代碼對其處理。           |--Exception:在運行時運行出現的一切情況,可以通過try catch finally處理。       Throwable中的方法:           |--getMessage():擷取異常資訊,返回字串。           |--toString():擷取異常類名和異常資訊,返回字串。           |--printStackTrace():擷取異常類名和異常資訊,以及異常出現在程式中的位置,傳回值vvoid。           |--printStackTrace(PrintStream s):通常用該方法將異常內容儲存在記錄檔中,以便查閱。       throws和throw:           |--throws:用於標識函數暴露出的異常;用在函數上,後面跟異常類名。           |--throw:用於拋出異常對象;用在函數內,後面跟異常對象。       異常處理:          try{需要檢測的代碼}catch(異常類、變數){異常處理代碼}finally{一定會執行的代碼}           注意:finally代碼塊只有一種情況不會被執行,就是在之前執行了system.exit(0)。       自訂異常:           步驟:1. 自訂類繼承Exception或者其子類。                    2. 通過建構函式定義異常資訊。                    3. 通過throw將自訂異常拋出。       異常細節:          1. RuntimeException以及其子類如果在函數中被throw拋出,可以不用在函數上聲明。          2. 一個方法被覆蓋時,覆蓋它的方法必須拋出相同的異常或異常的子類。          3. 如果父類拋出多個異常,那麼重寫(覆蓋)方法必須拋出那些異常的一個子集,不能拋出新的異常。       包之間的訪問:      

Java基礎-物件導向

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.