結構化設計:
結構化程序設計方法主張按功能來分析系統需求, 原則有 自頂向下, 逐步求精, 模塊化等.
結構化程序設計首先采用結構化分析(SA)方法對系統進行需求分析, 然后采用結構化設計(SD)方法對系統進行概要設計,詳細設計, 最后采用結構化編程(SP)方法實現系統.
結構化程序設計按功能來把系統逐步細化, 因此又叫做 面向功能的程序設計方法.
結構化程序設計的每個功能都負責對數據的接收,處理,輸出,這種方式又稱為面向數據流的處理方式用DFD(數據流圖)表示.
結構化程序設計里最小的程序單元是函數.整個程序由一個個函數組成, 而整個程序的入口是一個主函數(main()), 由主函數調用其他函數,函數之間的依賴來構成整個程序的功能.
結構化程序設計的局限性:
設計不夠直觀,與人類的思維不一致.
適應性差,可擴展性不強.
程序的三種基本結構:
結構化程序設計非常強調某個功能的算法.算法由一系列操作組成. 任何簡單或復雜的算法都可以由順序結構,選擇結構,循環結構這三種基本結構來構成.
順序結構: 順序結構表示程序中的各操作是按照它們在代碼中的排列順序依次執行的.
選擇結構: 選擇結構表示程序的處理需要根據某個特定的條件選擇其中的一個分支執行(單選,雙選,多選).
循環結構: 循環結構表示程序反復執行某個或某些操作,直到某條件為假(或為真)時才停止循環(直到循環, 當循環).
當型循環: 當條件為真時循環. 直到型循環: 直到條件為假時結束循環.
結構化程序設計中的任何結構都具有唯一的入口和出口. java的方法里面則是一種結構化設計.
面向對象設計:
面向對象的基本思想是使用類, 對象, 繼承, 封裝, 消息等基本概念進行程序設計.
在系統構造中盡可能的利用人類的自然思維方式,強調以現實世界中的事物(對象)為中心來思考,認識問題,並根據這些事物的本質特征,把它們抽象表示為系統中的類.
這使得軟件系統的組件可以直接的映像到客觀世界,並保持客觀世界中事物及其相互關系的本來面貌.
面向對象方法的三個基本特征:
封裝性:將對象的實現細節隱藏起來, 通過一些公共的接口方法來供外部調用對象的功能.
繼承性:是面向對象實現的的重要手段,子類繼承父類, 子類直接獲得父類的非private屬性和方法.
多態性:子類對象可以賦值給父類對象引用, 但運行的時候仍然表現出子類的行為特征,同一個類型的對象在執行同一個方法時, 可能表現出不同的特征.
面向對象還支持如下特點:
對象是面向對象最基本的概念, 它的基本特點有:標識唯一性,分類性,多態性,封裝性,模塊獨立性好.
類是具有公共屬性公共方法的一類事物.類是對象的抽象, 對象是類的實例化. 類的封裝提高了類的內聚性, 降低了對象之間的耦合性.
對象間的相互合作需要一個機制協助進行, 這樣的機制稱為"消息", 消息是一個實例與另一個實例之間的相互通信的機制.
面向對象方法中,類之間的共享屬性和共享方法的機制稱為繼承.繼承具有傳遞性.繼承分為多繼承和單繼承(java不支持多繼承).
"基於對象"和面向對象
面向對象和"基於對象"都實現了"封裝"的概念, 但是面向對象實現了"繼承和多態", 而"基於對象"沒有實現.
面向對象的程序員按照分工分為: 類庫的創建者 和 類庫的使用者