物件導向,面向過程程式設計

2021-10-14 00:11:53 字數 913 閱讀 8398

很多時候,我們都是用物件導向語言進行面向過程編碼。

濫用getter,setter方法很容易造成違反封裝特性。資料沒有訪問許可權控制,任何**都可以隨意修改它,**就退化成了面向過程程式設計風格的了。

在設計實現類的時候,除非真的需要,否則,盡量不要給屬性定義 setter 方法。除此之外,儘管 getter 方法相對 setter 方法要安全些,但是如果返回的是集合容器(比如例子中的 list 容器),也要防範集合內部資料被修改的危險。

在物件導向程式設計中,常見的全域性變數有

單例類物件、靜態成員變數、常量

等,常見的全域性方法有靜態方法

。單例類物件在全域性**中只有乙份,所以,它相當於乙個全域性變數。靜態方法一般用來操作靜態變數或者外部資料。靜態方法將方法與資料分離,破壞了封裝特性,是典型的面向過程風格。

實際上,

只包含靜態方法不包含任何屬性的 utils 類

,是徹徹底底的面向過程的程式設計風格。但這並不是說,我們就要杜絕使用 utils 類了。

也就是

資料定義在乙個類中,方法定義在另乙個類中。

在生活中,你去完成乙個任務,你一般都會思考,應該先做什麼、後做什麼,如何一步一步地順序執行一系列操作,最後完成整個任務。面向過程程式設計風格恰恰符合人的這種流程化思維方式。

而物件導向程式設計風格正好相反。它是一種自底向上的思考方式。

它不是先去按照執行流程來分解任務,而是將任務翻譯成乙個乙個的小的模組(也就是類),設計類之間的互動,最後按照流程將類組裝起來,完成整個任務。我們在上一節課講到了,這樣的思考路徑比較適合複雜程式的開發,但並不是特別符合人類的思考習慣。

物件導向程式設計離不開基礎的面向過程程式設計。為什麼這麼說?我們仔細想想,

類中每個方法的實現邏輯,不就是面向過程風格

的**嗎?

物件導向程式設計01 面向過程 物件導向

前面12講我已經寫完了從零開始學j ase 慶祝完結撒花!那麼從今天開始正式步入物件導向程式設計。建議開啟本章之前先回顧 j ase010方法詳解和 j a變數與方法的呼叫 同類操作中與跨類操作中的對比 物件導向程式設計 oop object oriented programming 物件導向程式設...

面向過程程式設計和物件導向程式設計

面向過程程式設計和物件導向程式設計 面向過程程式設計是一種以 過程為中心 的程式設計思想 分析出解決問題的步驟,然後用函式把這些步驟一步一步實現 面向過程程式設計,資料和對資料的操作是分離的。物件導向程式設計 物件導向程式設計是 將事物物件化,通過物件通訊來解決問題 物件導向程式設計,資料和對資料的...

面向過程程式設計VS物件導向程式設計

面向過程程式設計vs物件導向程式設計 a.面向過程程式設計的特點 a c語言的特點 優點 簡潔緊湊,靈活方便 結構化語言 語法限制不太嚴格,程式設計自由度大 允許直接訪問實體地址 可以直接對硬體操作 生成目標 質量高,程式 執行效率高 具有較 高的可移植性 缺點 靈活性 維護性 復用性 擴充套件性差...