C#物件導向(Object Oriented)程式設計思維 - Rayfly0225
文章推薦指數: 80 %
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位部落客按了讚:
延伸文章資訊
- 1C#物件導向(Object Oriented)程式設計思維 - Rayfly0225
C#為物件導向的程式語言,因此,在開始更深入瞭解C#程式語言其他的語法之前,讓我們先來瞭解一些物件導向的觀念,…
- 2Unity 應用領域- 熟悉物件導向的程式設計師,對於Interface...
熟悉物件導向的程式設計師,對於Interface 應該不陌生,一起來看看這個影片,了解如何使用Interface 於Unity 的機制中。 https://www.youtube.com/wat...
- 3【C#】物件導向的六個原則 - iT 邦幫忙
進而讓程式形成高內聚、低耦合的狀態! public class GameProgrammer //遊戲工程師使用遊戲引擎{ public void coding() { Console.Writ...
- 4(8) C# 物件導向設計-繼承 - Weight遊戲作家- 痞客邦
物件導向是程式中非常重要的一環如果你物件導向熟練基本上C#的程式設計你就算是畢業了所以再來我就開始講解物件導向到底是什麼也許你聽過這名詞但如果 ...
- 5[觀念]用遊戲來說物件導向程式 - MRcoding筆記
物件導向程式(Object-oriented programming,縮寫:OOP) ... 職業類別:初新者物件:一個玩家阿明一進遊戲是初新者所有初心者類別屬性有: 力量、 ...