切換
舊版
前往
大廳
主題

資策會Unity課程「C#」Day6

冰劍士-冰雪飛 | 2014-10-26 20:51:39 | 巴幣 18 | 人氣 4394

今次的內容主要為10/23日上午課程的教學

最主要是教「物件導向」的基本概念,原本有一小部分的內容是10/22教到

不過因為都是同觀念,所以本人把同觀念的都放到本篇來撰寫

裡面有些重複地之前講過,會把我之前寫的文章放在裡面
=====================================================================
C#是屬於微軟開發出的「物件導向」程式語言
物件導向這類程式語言的優點在於:維護容易、再用性高、可靠度佳
發揮物件導向系統優點的作法:製作類別、包含關係、繼承/多型關係、泛型

首先我們先了解下類別和物件的概念
類別就像是個描述物件藍圖,物件則是類別的實體
物件具有:Identity(獨一無二的代碼,物件的參考)、方法(可執行功能)、狀態(資料)
=====================================================================
封裝
結合資料和方法就是封裝,請參考下列網址「靜態方法」的部分
=====================================================================
製作類別

這是個簡單的自定義類別,你可以在裡面塞多種方法和資料
方法通常設成 public,資料通常設成 private

建立物件

宣告類型型態的變數不代表建立物件,必須使用 new 執行建立物件的動作

this

防衛性的撰寫程式習慣,用來解決類別內的方法與資料的名稱衝突
=====================================================================
繼承

類別的繼承要是沒設置,就是繼承基底類別 System.Object(預設的 Program 就是如此)
設置類別時在宣告的名稱打上冒號,並輸入你要繼承的類別
這樣一來你就可以使用該類別的資料和方法(前提是該方法或資料是 public)
補充一點,C#僅支援單一繼承,子類別沒辦法繼承多個父類別

改寫與多型

如圖所示,我在父類別裡的方法前補上 virtual(個人翻為「虛擬」方法)
這樣一來就能在繼承的子類別內補上 override 改寫指定的方法
當我呼叫這個方法時,就會執行改寫過的方法
=====================================================================
介面

介面並非類別,而一個類別可以繼承多個介面
宣告介面的名稱開頭最好補上 I 以區別類別
介面內不可設置變數、不可加修飾子、方法內不可寫程式
=====================================================================
基本上「物件導向」的基礎概念大概就到這為止

至於當天下午的課程是「遊戲製作管理」,日後再慢慢補上就是了

創作回應

悠浪貓
幫你補充一些繼承上的小知識

通常修飾詞有 internal, public, protected, private 四種

當你沒宣告的時候就是使用預設的 internal, 類似於private

public 是外部所有人都可以使用

private 是只有class內部才能使用, 但繼承的人無法使用

protected 則是class內部才能使用, 而繼承的人也能使用

所以一般有要用來繼承的class都會使用protected

除非你不希望繼承的人用到才會用private
2014-10-31 12:03:51
冰劍士-冰雪飛
感謝補充
2014-10-31 12:43:40
新手方
獲益良多,話說unity中大部分的腳本都繼承自MonoBehavior的原因是因為要改寫官方預設的類別MonoBehavior中的預設函式來達成目的嗎?
所以之後新增的StateMachineBehavior是官方做出的新的類別嗎?
2015-06-10 19:40:35
冰劍士-冰雪飛
是新的繼承類別沒錯
2015-06-10 20:04:37
_
冒昧請問大大,物件導向的方式相較於平時扁平化的撰寫方式,最主要的原因是什麼?
2019-07-26 09:58:35

更多創作