2016年12月27日 星期二

操盤人學C# (2) 什麼是物件

[前言]

Multicharts的使用者轉換成C#最不熟的應該是所謂的「物件」概念,以下教學將解釋C#的物件、欄位、方法。

[程式使用]

1. 新增專案「WhatIsClass
2. 寫入下列程式碼


[觀念解釋]

<物件>

所謂的「物件」你可以想像成他是一樣東西的「抽象主體」,
例如「操盤人」,這個世界上有很多操盤人。
class Trader 即是在定義操盤人這個物件
[語法補給:在C#中大括號{}定義了物件、方法的範圍]

<物件欄位>

那要如何區分誰是誰?需要用到物件內的「欄位」。
public string name 定義了操盤人這個物件裡面有name這個欄位可以使用。
 [語法補給:public代表name這個欄位大家都可以使用]
 [語法補給:string代表name這個欄位的型態是字串]

<物件方法>

我們創造操盤人,當然也要給他們操盤的能力,這時候我們要定義Trader物件裡面的「方法」。
public void BuyStock() 定義了操盤人有買股票的能力
public void BuyFutures() 定義了操盤人有買期貨的能力
 [語法補給:void代表這兩個方法沒有回傳值]
這部分就像Multicharts的自定義函數一樣,差別在於,這個自定義函數只有Trader物件能夠使用。

!!<建立、使用物件>!!

現在把自己想像成造物主,你要創造一個虛擬的程式世界,
這個世界需要一步一步創造,而入口就是Main方法。
進入虛擬世界後,我用兩行程式碼即可以在這個世界中創造兩個「不同」的操盤人(物件)

Trader soros = new Trader();           
Trader buffett = new Trader();
 [語法補給:創造新物件用new]

這就像我是這個程式世界的造物主,我雖然創造了兩個操盤人,我知道他們是誰,但是他們不知道他們自己是誰,我只好給他們名字。

soros.name = "索羅斯";
buffett.name = "巴菲特";
 [語法補給:使用欄位 => 物件.欄位]

這樣,soros這個Trader物件有了自己的名字"索羅斯"buffett也有了自己的名字"巴菲特"

而我這個造物主,我想要索羅斯買點期貨、股票,巴菲特買股票就好

soros.BuyFutures(); //命令索羅斯買期貨
soros.BuyStock(); //命令索羅斯買股票
buffett.BuyStock(); //命令巴菲特買股票
 [語法補給:使用方法(method、函式) => 物件.方法()]

執行開始(F5),看看自己創造的程式世界怎麼運作吧


[該學會什麼]

到這個階段,你不需要學會自己定義物件,但要會「建立」跟「使用」物件。
例如上方程式碼,需要知道「物件.欄位」跟「物件.方法()」是什麼意思,有任何不懂的地方,歡迎留言提問。

1 則留言: