C#與面向對象編程語言[1]

發表于:2007-05-14來源:作者:點擊數: 標簽:編程語言純粹對象面向
C# 是純粹的 面向對象 編程語言,它真正體現了“一切皆為對象”的精神。在C#中,即使是最基本的數據類型,如int,double,bool類型,都屬于System.Object類型。此外,使用C#編程,不會存在與游離于對象之外的屬于過程的東西。因此,學習C#,就必須具有面向對

   C#是純粹的面向對象編程語言,它真正體現了“一切皆為對象”的精神。在C#中,即使是最基本的數據類型,如int,double,bool類型,都屬于System.Object類型。此外,使用C#編程,不會存在與游離于對象之外的屬于過程的東西。因此,學習C#,就必須具有面向對象思想,不明白所謂的“面向對象思想”,就不可能掌握C#的精髓,而對于C#的理解,就只能僅限于語言特色的表面了。

  很多講解面向對象思想的書籍和文章喜歡將面向對象與面向過程相比較,然而對于學習程序設計的初學者而言,是完全沒有必要的。一張空白的紙張,事實上比寫滿字的紙張更利于未來的發展。

  那么什么是“面向對象思想”?其精要當然是“一切皆為對象”的意義。軟件的開發與設計,是圍繞著開發的目標進行的。比如開發一個 電子商務網站,那么與電子商務有關的都是我們要操作和關心的,商品、訂單、用戶、目錄、購物車等等,都是對象。如果要開發一個論壇,那么論壇中必備的要素,如論壇分類、主題、帖子、評論、用戶,也全都是對象。從小處說,我們要求寫一個算法用以計算階乘,那么起始值、運算結果、以及整個算法都是對象。

  那么對象具有什么特質?一般而言,一個對象應具有屬性和行為。以現實世界為例,“人”作為一種特殊的動物,也是我們所稱謂的“對象”。這個對象具有很多屬性,例如姓名,身高、體重、民族、國籍、出生年月等等。而行為呢,可以是行走、吃飯、跑步、乃至于玩游戲、踢足球。如果從詞義學的角度來看,屬性更偏向于名詞的范疇,而行為則近乎于動詞。然而對象也有特殊的情況,或者只具有屬性,或者只具有行為。例如身份證,可能只具有姓名,出生年月,籍貫,身份證號等屬性,而沒有行為。例如“飛”,這本身是一種動作,但同樣可以認為是一種行為。

  然而這種劃分并非絕對,根據實際情況,同一種對象具有的屬性和行為可能不一樣。例如同樣是“人”,如果是要開發一個戶籍管理系統,我們就不必去考慮行走、吃飯、跑步等行為,但如果是一個足球游戲,那么對象“人”,就需要各種踢足球的動作作為該對象的行為了。再比如“身份證”對象,也可能為了使用方便,會為它添加“IsValidate”這樣一個行為。

  還要注意的是,很多時候屬性其實本身也是一個對象,例如姓名,可以是string類型,它屬于Sytem.Object對象類型,我們也可以單獨為姓名建立一個類對象:
  public class Name
  {
  public string FirstName;
  public string MiddleName;
  public string LastName;
  }

  在C#里,有各種各樣的對象類型,除了本身提供的基本類型外,還支持自定義各種類型,包括class,struct,enum,interface,delegate,event。以前面的例子來看,對象Person“人”,就可以被定義為class類型,國籍可以被定義為enum類型。沒有行為的身份證,也可以被定義為struct類型。動作“飛”可以被定義為interface類型。至于delegate和event,則是一種特殊對象類型,例如我們可以為論壇管理系統,定義一系列事件,如BeforePost,AfterPost等等。關于這些內容,我會在后面的內容中詳細講解。

  要掌握面向對象思想,就必須具備識別系統中對象的能力。在我們要開發的系統中,哪些需要定義為單獨的對象,而且這個對象應該具備哪些屬性和行為,都是初學者比較頭疼的問題。要正確地識別對象,就需要首先分析該系統所應實現的功能。例如,我們要求開發一個電子商務系統,功能要求如下:
  1、支持商品的查詢功能;
  2、用戶如需購買商品,需要成為注冊用戶并登錄;
  3、如果當前庫存無該商品,用戶可以預訂;
  4、用戶可以將商品放入購物車;
  5、用戶購買商品之前,需提交訂單;
  6、用戶提交訂單后,系統應將訂購信息發送郵件給用戶;
  7、用戶可以對商品添加評論。

  有一個簡單的方法,可以幫助我們識別對象,就是找出這些功能描述中的關鍵名詞,如商品、用戶、購物車、訂單、評論。這些詞語基本上可以涵蓋這個電子商務系統的主要對象了。至于對象的屬性,可以考察該系統對這個對象的要求和所需要的信息。例如商品,必然要求有商品名、價格、相關圖片、所屬類別、庫存量等等。至于行為,我們還可以從功能描述中去尋找與這些對象名詞相關聯的動詞。例如商品的查詢,就代表商品具有Search行為。用戶注冊與登錄,就代表該用戶具有這兩種行為:Register,SignIn。當然隱含的行為自然還包括SignOut。

原文轉自:http://www.anti-gravitydesign.com

評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97