iT邦幫忙

DAY 25
3

資訊學院的30門課系列 第 25

資訊學院的30門課-物件導向程式設計Object Oriented Programming

  • 分享至 

  • xImage
  •  

物件導向程式設計(Object Oriented Programming)這門課應該很多人修過,雖然某些學校選修,不修這門課,不是程式極強不用學了,就是已經半放棄狀態。市面上最常見的兩個程式平台都是物件導向式的,包含JAVA與.NET Framework,這門課的重要性應該沒有人會懷疑吧。這門課還影響到我後來修電腦動畫
有的學校教Java,有的學校教C++,我猜應該也有人教C#或VB.Net,我們教C++,教授當年雖然說過C++有C的包袱,在物件的觀念上不如Java完整,但是當年Java剛出來,也沒人能保證Java能不能存活下來,為了莘莘學子的為來著想,還是穩扎穩打教授C++。我們教過6學分的C語言,所以C++用三學分來上是很充足的。

這門課有多重要,老實說我沒學過正式的C#課程,上司把我送到電腦職訓中心受訓.net,(哈哈就是遇到賽大那一間,有幸成為賽大的同學),能夠直接使用C#來寫程式,其實大部分是來自C++的基礎,而且我還很大膽的報名C#.net進階班。這同時也是我稱呼scjp為一日認證的關係。

我不知道這樣好不好,但是我真的把C#當作C++在寫,雖然說使用指標比較麻煩,但用reference大部分都能取代,其他包含:逐位元運算子、列舉、迴圈、SWITCH等等寫法都好像,幾乎一模一樣,呼叫Constructor等等都差不多。連短碼的形式都可以很類似,我可以用C/C++的技巧來縮短程式行數,在某方面與條件下增加閱讀與coding的速度,例如下面這段code。

int ret=0;
switch(str)  {
  case "N":
    ret = 1;
    break;
  case "C":
    ret = 2;
    break;
  case "S":
  default:
    ret = 3;
    break;
}

C#用短碼的方式怎麼寫?

int ret = str=="N"?1:str=="C"?2:3;

其實C++或者C#,最容易忘記的就是運算子優先順序,我還特別去咕了一下,=、?:跟==剛好都不用加左右括號。就是這麼短,好處是列印code出來的行數變少,螢幕上可以顯示出來的行數變多,可以置入腦部的程式碼變多。

這一門課我當年自認為學的很不錯(自我感覺良好嗎? >"<),期中與期末考都是9x分,印象最深刻的就是教授列出了七八個建構子,然後題目問說各種呼叫方式是呼叫哪一種建構子,其實以前考程式設計課程時,我是比較喜歡上機考的,不過考筆試應該也沒有人會如現在考scjp(現在叫ocjp)一樣去看考題,幾乎是code跟function稍微喵一下就去考場了,然後題目抓起來就隨機應變,包含考資料結構演算法也是這樣準備的。

篇幅的緣故,OOP的三大要素─封裝、繼承、多型,就不老生常談了,由我另外一篇分享與回應中,摘錄下面一段,看過的大大就先說聲抱歉了,不過這真的是學完OOP的心得。

每個功能怎麼安排。以物件導向程式設計的觀點來看:

第一步,要切割class,以及繼承關係。

第二步,盡可能地列出member function的名稱,包含Constructors,Destructors,operator overloading,對呀,只有名稱。

第三步,盡可能地列出data member。

第四步,開始設計member function,由被呼叫的class著手(比較複雜的function,需額外寫一些簡單的驗證程式),一邊寫一邊調整data member、member function與class的切割,包含member function的修飾子(public or private等等)。

第五步,除錯。

內文若有錯,歡迎來函指正,謝謝您。

類似課程:資訊學院的30門課-電子計算機程式 C Programming

課程總覽:http://ithelp.ithome.com.tw/question/10073806


上一篇
資訊學院的30門課-電腦動畫(電腦遊戲設計)
下一篇
資訊學院的30門課-網際網路技術Internet Technology(cont.)
系列文
資訊學院的30門課30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
krarm
iT邦好手 1 級 ‧ 2011-10-22 22:22:59

最近身體微恙,鐵人賽之後應該會息文一陣子吧。

我要留言

立即登入留言