(1)概念:
所謂的面向對象是一種編程思想,經過這種思想能夠把生活中的復瑣事情變得簡單化,從原來的執行者變成了指揮者,面向對象是基於面向過程而言的。
咱們常常說的面向對象的編程實現(OOP,Object Oriented Programming)java
面向對象強調結果,個人理解就是面向對象是將咱們生活中的各類各樣的東西封裝成爲一個對象,其中包括了他的各類屬性和各類方法,對外提供這些方法和屬性,使得咱們能夠經過建立(new)這個對象去調用這些方法和屬性,這樣即便咱們不知道各類屬性和各類方法是如何封裝的咱們也可使用這些方法和屬性。
(2)三大特徵:
一、封裝:封裝就是將一個對象的屬性和操做結合成一個獨立的總體,並儘可能隱藏其內部的操做細節。
二、繼承:繼承就是,子類繼承父類的特徵和行爲,使子類具備父類的一些方法。可是父類中private修飾的方法,不能被子類具備,並且父類中static修飾的方法,不能被子類重寫,即使子類中有與父類中同名的靜態方法,兩者也沒有任何關聯。
三、多態:多態是同一個行爲具備多個不一樣表現形式或形態的能力。多態就是同一個接口,使用不一樣的實例而執行不一樣操做,多態性是對象多種表現形式的體現。當使用多態方式調用方法時,首先檢查父類中是否有該方法,若是沒有,則編譯錯誤;若是有,再去調用子類的同名方法。
多態的好處:可使程序有良好的擴展,並能夠對全部類的對象進行通用處理。編程
(1)概念:構造方法是一種特殊的方法,它是一個與類同名且返回值類型爲同名類類型的方法。對象的建立就是經過構造方法來完成,其功能主要是完成對象的建立或者對象的初始化。當類實例化一個對象時會自動調用構造方法。構造方法和其餘方法同樣也能夠重載。
(2)形式:
能夠有參也能夠無參函數
``修飾符 類名([參數]){this
代碼……
}``code
(1)private:是一個權限修飾符,用於修飾成員變量和成員函數,被私有化的成員只能在本類中訪問,想要修改或獲取該成員,只能對外提供公共的get和set方法。
(2)this和super:this表明本類對象的一個引用對象。
構造函數中,this()必須放在第一行。
(3)extends:是繼承的關鍵字,表示子類繼承父類時使用,子類繼承父類的特徵和行爲,使子類具備父類的一些方法。可是父類中private修飾的方法,不能被子類具備,並且父類中static修飾的方法,不能被子類重寫,即使子類中有與父類中同名的靜態方法,兩者也沒有任何關聯。這也是面向對象的三大特徵之一。
(4)static:靜態關鍵字,能夠修飾成員變量、成員方法以及靜態代碼塊(隨着類的加載而加載,而且只被加載一次,通常用於項目的初始化),特色是被修飾的變量及方法會隨着類的加載而加載,優於對象加載,只加載一次就會一直存在,不會再開闢新的空間,全局惟一全局共享,能夠直接被類名調用,另外靜態只能調用靜態,非靜態能夠隨意調用,static不能喝this或者super共同使用,由於有static時可能尚未對象。
(5)final:final能夠修飾類、方法和成員變量,特定是被final修飾的類,不能被繼承,被final修飾的方法不能被重寫,被final修飾的變量是個常量,值不能被更改。
(6)abstract:抽象的關鍵字,用來修飾類或方法,Java中能夠定義沒有方法體的方法,該方法由其子類來具體的實現。該沒有方法體的方法咱們稱之爲抽象方法,含有抽象方法的類咱們稱之爲抽象類。抽象類能夠理解爲是一個只有方法聲明沒有方法體的特殊類。特色是抽象類中能夠沒有抽象方法(有子類去實現),若是類中有抽象方法,那該類必須定義爲一個抽象類,子類繼承了抽象類之後,要麼仍是一個抽象類,要麼就把全部抽象方法都重寫,抽象類不能夠被實例化。對象
(1)概念:
Java裏面因爲不容許多重繼承,因此若是要實現多個類的功能,則能夠經過實現多個接口來實現。繼承
Java接口和Java抽象類表明的就是抽象類型,就是咱們須要提出的抽象層的具體表現。OOP面向對象的編程,若是要提升程序的複用率,增長程序的可維護性,可擴展性,就必須是面向接口的編程,面向抽象的編程,正確地使用接口、抽象類這些太有用的抽象類型作爲java結構層次上的頂層。
(2)特色:
一、接口中都是抽象方法
二、經過interface關鍵字建立接口
三、經過implements讓子類來實現
四、能夠理解成,接口是一個特殊的抽象類
五、接口突破了java的單繼承的侷限性
六、接口和類之間能夠多實現,接口和接口之間能夠多繼承
七、接口是對外暴露的規則,是一套開發規範
八、接口提升了程序的功能擴展,下降了耦合性
九、接口裏是沒有構造方法的。在建立實現類的對象時默認的super(),是調用的默認Object的無參構造。
十、接口裏沒有成員變量,都是常量。因此,你定義一個變量沒有寫修飾符時,默認會加上:public static final
十一、接口裏的方法,默認就都是抽象的,若是你不寫明是abstract的,那會自動補齊
十二、Java中單繼承的侷限性經過接口能夠解決。接口能夠多繼承也能夠多實現,甚至能夠繼承的同時多實現。接口