incide c#(一) (轉)

worldblog發表於2007-12-15
incide c#(一) (轉)[@more@] 

面向基礎

本章的目的是引導你透過物件導向程式設計這個術語,理解物件導向的重要性。許多高階語言,如c++和的,聲稱“支援物件”,但僅有少數語言支援所有構成物件導向程式設計的原則。就是這樣一種語言:它是一種真正物件導向、基於的語言。因此,要從這本書獲得儘可能多的知識,你需要很好的把握其中的概念。我知道這樣的概念章節通常被讀者略過,他們希望馬上編碼,但除非你認為自己是“技術天才”,我建議你閱讀這一章。那些對物件導向程式設計僅略有所知的人,你會在這一章獲得許多。同時,記住以後的章節都會用到本章討論的術語和概念。

如我所言,許多語言都聲稱是物件導向或基於物件,但很少真正是這樣。C++則不同,因為不可否認,它是深刻移植於C語言。太多的想法必須犧牲C++來滿足一些C的遺傳屬性。甚至連語言,儘管它很好,但作為物件導向的語言仍然有很多限制。舉例來說,我提到在JAVA中簡單型別和物件型別是不同處理和動作的。不過,本章的焦點不是比較不同語言對OOP原則的正確性。本章寧願提供一個客觀和與語言無關的解釋OOP原則的教程。

在我們開始之前,我得說物件導向程式設計決不是一個市場推銷短語(儘管對某些人來說是這樣)、一個新語法、或一個新的應用程式設計介面()。物件導向程式設計是一系列嶄新的概念和想法。它是一種用語言思考問題的方式,是用一種更加直覺的方法來擁抱問題、因而也更加有生產力的一種方式。

我的第一個工作是用Pascal語言去編寫一個《冰天假日》票房收入的記錄和應用的。當我轉移到其他工作和應用時,我用PL/I 和 RPG III (及 RPG/400)。

一些年以後,我開始用C語言程式設計。在這些例項中,我很容易應用我從以前的學到的知識。對我來說一個成功的語言的學習曲線是更短的,儘管語言的複雜性,因為直到我用C++程式設計時,其他所有我用過的語言僅僅是語法上的不同。

  然而,如果你剛接觸物件導向程式設計,我先警告你:以前用非面嚮物件語言程式設計的經驗在這沒有用!物件導向程式設計是一種用來設計和編寫問題的解決方案的完全不同的思維方式。事實上,研究表明程式設計新手比我們這些原來學過過程性語言如BASIC, COBOL和 C的人更快地學習物件導向的語言。

這些人不需要“忘卻”任何過程性程式設計的習慣,而這些會阻礙他們對OOP的理解。他們以一個乾淨的石板開始。如果你用過程性語言程式設計很多年了,C#是你的第一個面嚮物件語言,我能給你最好的建議就是保持一個開放的頭腦,在你攤開你的雙手說:”我可以欺騙[插入你的過程性的語言]”之前,我所說的建議.任何一個有過程性程式設計背景的人轉而學物件導向程式設計都會經歷這個學習曲線,這個曲線很有用.用面嚮物件語言程式設計的收益是無法計算的,不管是更高效地編寫程式碼,還是建立一個在第一次編寫好後更易修改和擴充套件的.可能開始看上去並不是這樣。然而,經歷了20多年發展的(包括使用面嚮物件語言的8年)顯示了:當正確應用是,OOP概念,確實如它所許諾那樣起作用。不需多少功夫,我們就很容易發現到底哪裡出來麻煩。 

更多資訊見中國軟考聯盟: 中國軟考聯盟


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993625/,如需轉載,請註明出處,否則將追究法律責任。

相關文章