結構化程序的任何一個結構都具備惟一的入口和惟一的出口,而且程序不會出現死循環。編程
雖然Java是面向對象的,但Java的方法裏則是一種結構化的程序流。spa
面向對象的基本思想:類、對象、繼承、封裝、消息……設計
採用面向對象方式開發的軟件系統,其最小的程序單元是類,這些類能夠生成系統中的多個對象。對象
面向對象的語言不只使用類來封裝一類事物的內部狀態數據,,還會提供操做這些狀態數據的方法。blog
成員變量(狀態數據)+方法(行爲)=類定義繼承
面向對象方法具備三個基本特徵:封裝、繼承、多態ip
封裝:將對象的實現細節隱藏起來,而後經過一些公用方法來暴露該對象的功能;開發
繼承:面向對象實現軟件複用的重要手段,當子類繼承父類後,子類做爲一種特殊的父類,將直接得到父類的屬性和方法。部署
多態:多態指的是子類對象能夠直接賦值給父類變量,但運行時依然表現出子類的行爲特徵,這意味着同一個類型的對象在執行同一個方法時,可能表現出多種行爲特診。模板
抽象也是面向對象的重要部分
因爲多繼承可能引發繼承結構的混亂,並且會大大下降程序的可理解性,因此Java不支持多繼承
「基於對象」≠「面向對象」
基於對象也使用了對象,可是沒法利用現有的對象模板產生新的對象類型,繼而產生新的對象。JavaScript語言就是基於對象的,它使用一些封裝好的對象,調用對象的方法,設置對象的屬性,可是他們沒法讓開發者派生新的類,開發者只能使用現有對象的方法和屬性。
面向對象軟件開發須要通過:OOA(目標系統分析,創建分析模型) /OOD(用面向對象的思想細化OOA的結構)/ OOP(編程)
uml是用來描述、記錄OOA 和OOD結果的符號表示法。
最經常使用的UML圖包括:用例圖,類圖,組件圖,部署圖,順序圖,活動圖和狀態機圖等。
一切都是對象
在Java語言中,除八個基本數據類型值以外,一切都是對象,而對象就是面向對象程序設計的中心。
對象具備狀態,一個對象用數據值來描述它的狀態。
對象還具備操做,這些操做能夠改變對象的狀態,也稱之爲行爲。
Java語言不容許直接訪問對象,而是經過對對象的引用來操做對象。
類和對象
類是對一類事物的描述,是抽象的,概念上的定義。
對象是實際存在的該類事物的個體,所以也稱爲實例
對象的抽象化就是類,類的具體化就是對象。
Java語言使用class關鍵字定義類,定義類時可以使用成員變量來描述該類對象的數據,可以使用方法來描述該類對象的行爲特徵。
類間關係:
①通常→特殊關係(典型的繼承關係,Java中使用extends關鍵字來表示這種繼承關係,is a)
②總體→部分結構關係(組裝結構,典型的組合關係,Java經過在一個類裏保存另外一個對象的引用來實現這種組合關係,has a)