2、面向對象的幾個基本概念


一、面向對象的程序設計中的兩個重要概念:

  1、:創建的所有 class 都是類,是一個抽象的概念,類中包含了數據(在類中叫屬性成員變量)與對數據的操作(在類中叫做方法)。例如人是一個類,他有姓名、年齡等數據屬性、好友吃飯、睡覺、娛樂、和工作等動作。

    方法:靜態方法(static修飾符)、非靜態方法(無static修飾符) 

    方法之間的調用關系:

            1)、非靜態方法調用靜態方法或者非靜態方法可以直接調用。

            2)、靜態方法調用靜態方法可以直接調用。靜態方法調用非靜態方法需要 new 對象,通多對象.方法名來調用。

            3)、靜態方法或者非靜態方法都是屬性里面的方法所以都可以先 new 一個對象,然后通過對象.方法名來調用。

    【注意】方法不能嵌套,即方法不能定義在另一個方法里面。

  2、對象:(又叫作實例,所以生成一個對象的過程就就叫做實例化)是對象的具體的概念。例如人是一個類、那么具體到那個人就是人的對象了。

  3、命名約定:

    a): 首字母大寫,如果一個類名由多個單詞組成,則每個單詞的首字母大寫,中間不使用任何連接符。如果Person、MemberTest

    b)方法:首字母小寫,如果一個方法名由多個單詞組成,則第一個單詞全部小寫,從第二個單詞開始,每個單詞首字母大寫。如add、addUser

    c)屬性: 命名約定同方法相同。如age、userName

二、面向對象的三大特點:

  1、封裝:將數據與方法放在一個類中就構成了封裝。通俗的講是指隱藏對象的屬性和實現細節。

    【好處】將變化隔離、便於使用、提高重用性、提高安全性

    【封裝的原則】將不需要對外提供的內容都隱藏起來、把屬性都隱藏,提供公共方法對其訪問

  2、繼承:使用extends關鍵字后,子類對象擁有父類對象的屬性和方法。

    1)提高代碼的復用性。
    2)讓類與類之間產生關系,有了這個關系,才有了多態的特性。
    3)Java中只支持單繼承,不支持多繼承。
    4)Java支持多層繼承。

  3、多態:可以理解為事物存在的多種體現形式(父類類型的變量引用指向子類類型的對象)。

    1)、體現:父類類型的應用指向自己的子類對象,傳遞參數時、父類的應用可以接收自己的子類對象。

    2)、前提:必須使類與類之間的關系,要么繼承要么實現。

    3)、好處:多態的出現大大的提高了程序的擴展性。

    4)、使用:當使用多態方式調用方法時,會首先檢查父類中是否有對應的方法,如果沒有則編譯錯誤;如果有則會調用子類對應的方法

    5)、轉換:

         向上類型轉換:將子類型轉換為父類型,不需要加顯示指定。

         向下類型轉換:父類型對象的引用指向的是哪個子類型對象,就能轉換為對應的子類型的引用,必須顯示指定(必須使用強制類型轉換)

三、構造方法:構造方法用於完成對象屬性的初始化工作

  1、構造方法必須與類名完全一致。

  2、構造方法沒有返回值,不可以寫return語句,也不能出現void。

  3、如果在一個類中沒有聲明構造方法,那么Java編譯器會自動為類添加一個沒有參數且方法體為空的構造方法(默認的構造方法),如果類中聲明一個帶參數的構造方法,剛Java編譯器不會自動添加默認構造方法

  4、一個類中可以有多個構造方法,但參數不能相同

  5、不能顯示的調用構造方法,構造方法通過new關鍵字隱式來調用且只調用一次

  6、一般在定義了有參構造器的同時再寫一個空的無參構造器。

四、重載和重寫的區別

  1、重載:一個類中可以有多個相同的方法名,但參數不相同(參數的個數,參數的類型),這就是重載。

  2、重寫:在子類與父類之間,方法一模一樣(方法名、返回類型、參數)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM