《面向過程和物件導向的程式設計》

2021-05-17 21:00:41 字數 2420 閱讀 9856

關於寫《面向過程和物件導向的程式設計》這個話題我很矛盾,我擔心許多程式設計師對此話題不太感興趣,可能他們不太懂得面向過程和物件導向程式設計的巨大差距,以及對程式設計水平的影響。

在我整個程式設計生涯中,有無數的轉變和變化讓我銘記在心。從彙編到

c語言,從檔案系統到資料庫,從

c語言倒

dbase,

從c/s

倒b/s

,從程式語言倒開發平台等等。但是,讓我感覺最大的、最根本的轉變是從

c語言轉學

c++。可以說這是乙個革命性的轉變。在當時我對

c語言的運用已經如日中天,得心應手,感到只要用

c語言就能完成所有應用程式的開發。但是,學了

c++之後,我才恍然大悟,程式還可以用另外一種思維編寫。這個轉變過程極其痛苦,每個概念的接受都需要和

c語言進行對比,都要不停地問這個是為什麼?整整花了我幾乎半年時間,而且每分每秒讓你在不解,忽然懂了,忽然不懂中度過。我學習一種語言,主要是學習這個語言的構架和基本原理,也就是說要研究這個語言的由來和特點。又經過若干年後,我才真正意識到物件導向程式設計的重要意義。它絕對是程式設計師思維方式的變革和昇華,它使得程式設計師可以從具體程式設計,提公升到抽象的結構。使得程式設計師可以編寫更加通用的類,進而編寫通用的軟體產品。

人們從小就學習1、

2、3、

4,頭腦裡排滿了次序!絕大數人都是按照次序思維的。這種次序就是一種過程。例如先做什麼,後做什麼。做得比較好的,表現做事有條理,做事很有邏輯性。做得不好的,則把過程做得歪歪扭扭最後也能達到預期的結果。同樣,絕大多數程式設計師都是按照面向過程思維方式去程式設計的。儘管他們用了物件導向的程式語言,學了物件、學了類,用了類,但是他們仍然用面向過程的方式程式設計。

一、面向過程程式設計

面向過程程式設計體現了程式設計師的邏輯性,許多程式設計師的水平就體現在這裡。如何設計語句的次序,如何組織函式、如何設計函式的引數、如何設計過程分支等等都體現了程式設計師的邏輯能力。例如,我們編寫儲存學生資訊功能:

1) 空值處理

我們首先要判斷學生資訊項是否有空值,如必輸項為空,則給出提示。例如,學生姓名為空!

2) 合法性檢查

然後,我們還要對各資訊項的有效性進行判別,如果有無效資訊提示重新輸入。例如,如學生的出生日期不符合日期格式!

3) 產生學生id

可以給出自然數,也可以給出有意義的編碼!但是

id必須是唯一的!如不唯一則進行相應的處理。

4) 開啟資料庫

建立資料庫連線,獲取資料庫控制代碼。

5) 組織insert 語句

將操作者輸入的學生資訊,拼成一句

insert

語句!(實現這個功能有很多種方法)

6) 提交資料庫執行 將

insert

語句提交給資料庫。

7) 操作日記

將以上操作資訊寫入日記。

8) 提示寫入成功

提示「儲存成功!」向操作者提示操作成功!

這些是我很隨意給出的儲存學生資訊的過程。當然,不同的程式設計師可能會寫出不同的過程,但是最終的結果是,學生資訊儲存到資料庫中。

處理的內容越多,不同程式設計師處理邏輯越是不同。可謂五花八門,而正是這些不同,體現了程式設計師的水平。

但是,這種面向過程的程式設計的程式只能用於具體的系統,卻不能用於其它系統。例如,以上的程式只能用於學生資訊處理程式。

二、物件導向程式設計

物件導向程式設計體現了程式設計師的抽象能力,其本質是把乙個事物或多個事物看作乙個抽象的物件。還是舉例,儲存學生資訊功能。

1) 我們可以把儲存學生資訊功能看成乙個物件(這裡僅是舉例,不一定合理。)

注意我們這裡先不要管面向過程中的那些處理流程,僅僅把它當作乙個物件,乙個空集。

2) 我們為這個物件設計設計屬性

例如,輸入資訊、資料庫連線串、資料表名、日記表名等!

3) 我們為這個物件設計事件。 處理

4) 我們編寫這個類。

5) 我們在儲存功能的命令按鈕裡呼叫這個類

用物件導向程式設計思想與面向過程程式設計是不同的,它把學生資訊抽象成輸入資訊,把學生資訊表抽象成資料表。基本上於我們所要編寫的具體學生資訊無關。這種抽象使得編寫的類,有可能用於學生資訊處理、客戶資訊處理、員工資訊處理、人口資訊處理中的資訊儲存功能。。。

我並不是說面向過程不好,因為,絕大多數程式是面向過程的,許多程式設計師面向過程的邏輯性能力還有待提高,因此,程式設計師還需要從基礎做起,提高面向過程程式設計的水平;以我的經驗和體會,能夠把面向過程的程式編好也不是很容易的事!新手首先要學會面向過程程式設計,有經驗的程式設計師要提高面向過程的程式設計的水平。而系統的結構、模組的結構、功能的結構、函式的結構、控制項的結構都應該用物件導向的思維進行設計。但是總體上來說,從面向過程程式設計到物件導向程式設計是個思維方式提公升的過程,作為程式設計師應該對此有乙個清醒的認識,而這一點正是優秀程式設計師必需具備的條件之一。當乙個程式設計師能從具體的程式抽象出物件,並能把這個物件用於其它程式,則這個程式設計師完成了技術水平的蛻變

,躋身於優秀程式設計師行列了。

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

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

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

面向過程程式設計和物件導向程式設計 一 面向過程程式設計 面向過程程式設計將程式分成了 資料 和 處理函式 兩部分,程式以 處理函式 為核心,如果要執行什麼操作,就將 資料 傳給相應的 處理函式 返回我們需要的結果 面向過程的思路很好掌握,上手容易,但它存在三方面的問題 1 資料和處理函式沒有直接的...

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

何謂物件導向?何謂面向過程?對於這程式設計界的兩大思想,一直貫穿在我們學習和工作當中。我們知道面向過程和物件導向,但要讓我們講出來個所以然,又感覺是不知從何說起,最後可能也只會說出一句就是那樣啦,你知道啦。而這種茫然,其實就是對這兩大程式設計思想的迷糊之處。本文通過學生到校報道註冊的例項,闡述了面向...