面向過程和麪向對象的區別
面向過程
面向過程是強調怎麼做?
- 把完成某一個需求的所有步驟從頭到尾逐步實現。
- 根據開發需求,將某些功能獨立代碼封裝成一個又一個的函數
- 最後完成的代碼,就是順序的調用不同的函數
特點:
- 注重步驟和過程,不注重責任的分工
- 如果需求複雜,代碼會變的很複雜
- 開發複雜多變的項目,沒有固定的套路,開發難度很大
面向對象
- 相比較方法,面向對象是更大的封裝,根據職責在一個對象中封裝多個方法
- 在完成某一個需求前,首先確定責任---要做的事情(方法)
- 根據責任確定不同的對象,在對象內部封裝不同的方法(多個)
- 最後完成的代碼,就是順序的讓不同的對象調用不同的方法
特點
- 注重對象和責任,不同的對象承擔不同的責任
- 更加適合應對複雜的需求變化,是專門應該複雜項目開發,提供固定套路
類和對象
類和對象是面向對象編程的兩個核心
類
- 類是對一羣具有相同特徵或者行爲的事物的統稱,是抽象的,不能直接使用。特徵被稱爲屬性,行爲被稱爲方法
- 類就相當於製造飛機時的圖紙,是一個模板,是負責創建對象的。
對象
- 對象是由類創建出來的一個具體存在,可以直接使用
- 由哪一個類創建出來的對象,就擁有哪一個類中定義的屬性和方法。
- 對象就相當於圖紙製造出的飛機,在程序開發中,應該先有類,在有對象
類和對象的關係
- 類是模板,對象是根據類這個模板創建出來的,應該先有類,在有對象
- 類只有一個,而對象可以由很多個。不同對象之間的屬性可能各有不同
- 類中定義了上面屬性和方法,對象中就有什麼屬性和方法,不可能多,也不可能少。
類的設計、
在程序開發中,首先要做需求分析。要設計一個類需要滿足一下三個要素
- 類名這類事物的名字,滿足駝峯命名法
- 屬性這類事物具有什麼特徵
- 方法這類事物具有什麼行爲
屬性和方法的確定
- 對對象的特徵描述,通常可以定義成屬性
- 對象具有的行爲(動詞),通常可以定義爲方法
- 需求中沒有涉及的屬性和方法在設計類中,無需考慮