面向物件的程式設計思想
面向過程的程式設計思想就是在面對問題的時候使用計算機能夠理解的邏輯來描述和表達待解決的問題以及具體的求解過程。例如寫一個1+1等於2的程式,你會自然的想到輸入兩個變數,每個變數的值為1,然後對這兩個變數求和,這就是面向過程的程式設計思想。
public static void main(String[] args) {
int a=1;
int b=1;
int result=a+b;
System.out.println(result);
}
好的程式碼要達到可維護,可複用,可擴充套件以及靈活性好的四個特點。可維護就是需要修改的時候,只需要修改變動的那一部分,使得修改達到最小;可複用指程式碼不僅在寫的地方使用,在別處依然可以呼叫這段程式碼;可擴充套件指當後來者想要擴充套件功能的時候不需要在之前程式碼修改的基礎上進行修改。靈活性好,例如在程式碼實現功能方面,不僅實現了需求實現程式碼,還能夠隨時滿足其它功能的擴充套件。
那麼如何實現上述四個特點呢,面向物件程式設計則能很好的實現。為什麼面向物件程式設計能夠實現上述四個特點呢,因為面向物件程式設計本身具有的三個特點:封裝,繼承,多型。
封裝:就是把物件的屬性和行為(資料)結合為一個獨立的整體,並儘可能隱藏物件的內部實現細節,就是把不想告訴或者不該告訴別人的東西隱藏起來,把可以告訴別人的公開,別人只能用我提供的功能實現需求,而不知道是如何實現的。增加安全性
繼承:是面向物件最顯著的一個特性,繼承是從已有的類中派生出新的類稱為子類,子類繼承父類的資料屬性和行為,並能根據自己的需求擴展出新的行為,提高了程式碼的複用性。
多型:指允許不同的物件對同一訊息做出相應。即同一訊息可以根據傳送物件的不同而採用多種不同的行為方式(傳送訊息就是函式呼叫)。封裝和繼承幾乎都是為多型而準備的,在執行期間判斷引用物件的實際型別,根據其實際的型別呼叫其相應的方法。
如何使用上述思想程式設計呢,還是上面那個例子,1+1等於2還可以這麼寫:把加法當作一種物件,那麼很自然的可以想到減法,除法,和乘法,他們都具有兩個運算元以及進行操作的共同點,因此可以寫一個共同的類,這個類裡包含了這些操作的共同的部分,再寫一個加法就繼承這個共同的類,然後實現加法部分就可以完成我們需要的。
public abstract class Operation { public abstract int operation(int a,int b); } public class Add extends Operation { @Override public int operation(int a, int b) { return add(a, b); } private int add(int a, int b) { return a + b; } } public static void main(String[] args) { Add add = new Add; System.out.println(add.operation(1, 1)); }
這篇文章主要展示了面向程式設計的思想方法,比較簡單明瞭,如果想要了解更好的程式設計經驗請看下一篇部落格。
參考書籍:大話設計模式