面向對象是推進軟件開發的綜合技術,不僅包括編碼的設計實現,也在上流工程
的業務分析、需求定義中用到。
面向對象的軟件開發技術與現實世界是似是而非的,首先軟件只能一定的程度上涵蓋
現實世界的工作,並不能完全模擬現實世界的運行,計算機只是擅長做存儲和固定指令的
工作;
類,多態,繼承是面向對象的三大要素。類用於將變量和子程序匯總在一起,創建獨
立性高的構建;多態和繼承用於消除重復代碼,創建通用性強的構件。
類的功能是匯總,隱藏和創建實例(不限數量)
- 匯總子程序和變量
- 隱藏,子程序和變量只在類的內部使用
- 從一個類可以創建多個實例
實例變量是存在期間長的局部變量或者限定訪問范圍的全局變量,這種變量結構在面向
過程變程中是不存在的。
多態是創建公用主程序的結構,公用子程序將被調用端的邏輯匯總為一個邏輯,而多態
則相反,他統一了調用端的邏輯,不管被調用端如何變化,也無須修改調用端。多態是統一
調用子程序端的邏輯結構,即創建公用主程序的結構。
繼承是將類定義的公共部分匯總到另外一個類中,並去除重復代碼的結構。
指定類型的原因有兩個:告訴編譯器變量內存區域的大小;防止程序發生錯誤,在不同
類型變量進行運算時,能在編譯或者運行程序時發生顯示的錯誤。
在面向對象編程中,類也可以作為類型使用,從而將類型檢查作為一種程序規則強制要求。
程序的運行方式分為編譯器方式和解釋器方式。編譯器方式的運行效率高,編譯器是將程
序轉換成計算機能夠理解機器語言之后再運行的方式;而解釋器方式是將程序命令邊解釋邊執
行的方式,並不需要編譯器,這種方式可以使同一個程序在不同的環境中運行。而面向對象的
代表Java則采用中間碼的方式,中和了編譯型和解釋型語言的優點。既可以使同一個程序在不
同的環境中運行,同時又兼顧運行效率。
靜態區:在應用程序開始時分配,一般用於保存全局變量和運行的嗲嗎,為整個應用程序
分配一個。
堆區:在程序運行開始時分配一定的區域,之后根據需要再為應用程序分配,存儲的信息
取決於應用程序,為一個系統或者應用程序分配一個。
棧區:保存調用子程序的參數,局部變量和返回值,為每個線程分配一個。
面向對象的類一般存儲在靜態區,實例存儲在堆區,方法執行時的參數,局部變量和返回值
存儲在棧區。
提高構件獨立性的訣竅:單一職責(明確表示功能的名稱),信息隱藏,創建得小一點。
敏捷開發宣言:個體和互動高於流程和工具;工作的軟件高於詳盡的文檔;客戶合作高於合
同談判;響應變化高於遵循變化。敏捷開發實踐:測試驅動開發,重構和持續集成。