C#物件導向(Object Oriented)程式設計思維 - Rayfly0225

文章推薦指數: 80 %
投票人數:10人

C#為物件導向的程式語言,因此,在開始更深入瞭解C#程式語言其他的語法之前,讓我們先來瞭解一些物件導向的觀念,… 直接觀看文章 OpenMenu 搜尋 搜尋: 關閉 C#為物件導向的程式語言,因此,在開始更深入瞭解C#程式語言其他的語法之前,讓我們先來瞭解一些物件導向的觀念,以及簡單的對照範例。

過程導向(傳統程式設計)的思維:分析出解決問題的步驟,然後依照步驟實現。

物件導向的思維:把構成問題的事物拆分成各個物件,物件用來描述某個事物在解決問題中的行為。

物件導向設計的三大特性: 封裝 繼承 多態 物件導向設計的三大好處: 重用性 靈活性 擴展性 物件導向(Object-Oriented,OO)程式語言是現在程式語言的趨勢,像C#、VB等程式語言都是屬於物件導向的程式語言。

物件導向程式語言的核心,就是程式中的「物件」(Object),但是,對大部分剛接觸程式開發的人來說,「物件」其實是很抽象的觀念。

其實,程式中所謂的「物件」,指的就是事先定義好的執行單元,可以用來執行特定的指令,並且維護本身的狀態。

在前面章節的練習曾經使用過Windows表單、TextBox控制項、Button控制項等,都是程式中物件的一種。

為了要讓程式可以取得或設定物件的狀態,物件會提供屬性供程式使用;為了讓程式可以透過物件執行某種特定的功能,所以物件也會提供程式可以叫用的方法;而當物件狀態改變時,也可能會觸發特定的事件。

我們以將動物放入農舍裡作為發想,提出一個把大象放入農舍,然後再把豬放入農舍的問題。

過程導向範例 過程導向範例中,我們想到把要把大象放入農舍的流程為開啟農舍->開燈->將大象關入->關燈->關閉農舍,所以過程導向思維的代碼應如下: usingUnityEngine; usingSystem.Collections; publicclassObjectOriented:MonoBehaviour { //Usethisforinitialization voidStart() { //1.開啟農舍 //2.開燈 //3.把大象關入 //4.關燈 //5.關閉農舍 Debug.Log("開啟農舍"); Debug.Log("開燈"); Debug.Log("把大象關入"); Debug.Log("關燈"); Debug.Log("關閉農舍"); Debug.Log("開啟農舍"); Debug.Log("開燈"); Debug.Log("把豬關入"); Debug.Log("關燈"); Debug.Log("關閉農舍"); } //Updateiscalledonceperframe voidUpdate() { } } 輸出結果: 物件導向範例 物件導向範例中,我們先把問題的事物先歸納為物件,然後分析出開啟農倉、開燈、把大象關入、關燈、關閉農倉,以上這些行為都是對農倉的操作。

我們在這邊可以把農倉獨立出來建立一個class,然後在農倉這個類中定義一些欄位和方法來達成目標,所以物件導向思維的代碼應如下: usingUnityEngine; usingSystem.Collections; //1.建立農倉class,通過給類添加欄位、屬性或方法,使其有具有特定行為 publicclasswarehouse { //開啟 publicvoidOpen() { //開啟農倉 Debug.Log("開啟農舍"); //開燈 Debug.Log("開燈"); } //關閉 publicvoidClose() { //開燈 Debug.Log("關燈"); //開啟農倉 Debug.Log("關閉農舍"); } //把某物關入 publicvoidPutIn(stringObject) { Debug.LogFormat("把{0}關入",Object); } } publicclassObjectOriented:MonoBehaviour { //Usethisforinitialization voidStart() { //2.通過組合對象的行為,解決問題 warehouseWarehouse=newwarehouse(); Warehouse.Open(); Warehouse.PutIn("大象"); Warehouse.Close(); Warehouse.Open(); Warehouse.PutIn("豬"); Warehouse.Close(); } //Updateiscalledonceperframe voidUpdate() { } } 輸出結果: 參考網址: http://www.delightpress.com.tw/bookRead/skup00007_read.pdf 分享此文:TwitterFacebook請按讚:喜歡正在載入... 相關 文章分頁導航 舊文章C#方法參數實作(1)新文章C#構造與析構 發表迴響取消回覆 在此輸入你的回應… 在下方填入你的資料或按右方圖示以社群網站登入: 電子郵件(必須填寫)(電子郵件地址不會公開) 名稱(必須填寫) 個人網站 您的留言將使用WordPress.com帳號。

( 登出 /  變更 ) 您的留言將使用Twitter帳號。

( 登出 /  變更 ) 您的留言將使用Facebook帳號。

( 登出 /  變更 ) 取消 連結到%s 透過電子郵件通知我後續回應。

有新文章時用Email通知我。

Δ 搜尋: 近期文章 for循環求陣列內應用 UnityC#模型預覽程式 UnityC#籌碼疊加與數值進位功能 C#調用父類(基類)的構造函數 C#-訪問修飾符(AccessModifiers) 近期迴響 Angel財經記在VisualStudio2015開發C#第一個執行檔(1…C#接口(介面)–Ray…在C#自動屬性與自定義構造方法範例 文章存檔 2017年七月 (1) 2017年六月 (3) 2016年七月 (6) 2016年六月 (27) 2016年五月 (4) 2016年四月 (3) 2016年三月 (25) 文章分類 C#(61) Others(1) Unity(15) 標籤array ArrayList bet bit break chip Class continue Coroutine Delegate deltaTime Dictionary dowhile enum filed for foreach Get ifelse interface List method model money movie NGUI ObjectOriented Parse Property ref return score Set Set&Get stack&queue static string struct switch this Time Unity update VisualStudio while 單例 多態 多維陣列 封裝&繼承 屬性 抽象 數組 方法 構造&析構 欄位 泛型 物件導向 索引 訪問修飾符 運算子 陣列 靜態構造 類別其它 註冊 登入 訂閱網站內容的資訊提供 訂閱留言的資訊提供 WordPress.com 回到頂端 隱私權與Cookie:此網站可使用Cookie。

繼續使用此網站即表示你同意使用Cookie。

若要瞭解更多資訊,包括如何控制Cookie,請參閱此處: Cookie政策 追蹤 已追蹤 Rayfly0225 我要註冊 已經有WordPress.com帳號了?立即登入。

Rayfly0225 自訂 追蹤 已追蹤 註冊 登入 複製短網址 回報此內容 以閱讀器檢視 管理訂閱 收合此列   載入迴響中...   發表迴響… 電子郵件(必要) 名稱(必要) 網站 %d位部落客按了讚:



請為這篇文章評分?