
這個地方很久沒更新了,這也代表說我很久沒看展覽了(笑)其實一部份時間都在忙學校的事,搞得另一邊也沒有在更新,雖然說忙歸忙,不過還是有些計畫在進行….近期這裡多多少少會紀錄一些目前研究的進度!
最近因為學校重修C++的關係,讓我又重新再學一次,課堂上老師講解的蠻清楚,雖然進度有點頗快,不過大致跟的上。“Object-C"是最近開始在摸索,也因為重學一次C語言,目前為止還算懂,程式基本架構有點像C的寫法,看了一些基本教學,很多也是從變數、迴圈、陣列…等教下來,只有一些小地方寫法不太一樣。
標頭檔
C語言 #include
object-C #import
字串印出(string)
C語言 —- cout<<"hello!!,%d",everybody;
object-C —- NSLog(@"hello!!:%d.",everybody);
輸出 —- hello!!everybody
(以上是以不是圖形化的程式解說,所以寫法跟C差別不大,如果有讀到不一樣的再補上。)
不過我想很多人還不知道object-C,就連我自己一開始是有聽過,但不知道是幹嘛的…google了一下,才知道原來是iphone裡的程式語言。
【關於Objective-C】
Objective-C 被稱為 C 語言的 superset。就是在 C 上面再加上物件導向的設計。基本上 Objective-C 使用與 C 一樣的的語法,能處理 Objective-C 的 compiler 也一定能處理 C。在 Objective-C 的程式碼中也可以任意加入 C 的程式碼,但同時也要避免破壞物件導向的設計。GNU GCC 3.x 已經完整支援 Objective-C,因此建議使用 GCC 3.x 版本,而且版本數愈高愈好。
(1)單一繼承和Java一樣,只能有一個superclass。C++ 可以有很多個。
(2)Message在C++/Java中還是使用function call。 也就是Object.function(argument)的方式,在Objective-C中稱為message,格式為[Object method:message]。除了格式上的不同,message使用了dynamic binding,在執行(Runtime)時才處理,而不是在編譯(compile)的時候處理。
(3)Category如果想要在既有的Class中增加一些功能(Function/Method),在Java/C++中的做法就是做一個Subclass來繼承這個Class,把新的函數加在這個Subclass。在Objective-C中,可以把原來的Class加上一些Category,也就是新的函數,這樣子原來的Class就會多出新的函數出來。好處是不用創造新的Sublass,但是Category不能增加新的變數(Subclass可以),只能增加新的函數。
(4)Protocol就和Java的Interface一樣,用來補足沒有多重繼承的問題。
【補充 : Objective-C的平台環境是用MAC】
在Mac上的不能用VC與DEV C,除非安裝Boot Camp,就像在Windows的C不能在Unix上Run一樣。而且Mac的C和一般的C不一樣,Mac OS X是使用Objective-C,簡稱ObjC,是擴充C的物件導向語言,它主要使用於Mac OS X和GNUstep這兩個使用OpenStep標準的系統,而在NeXTSTEP和OpenStep中它更是基本語言。Objective-C可以在gcc運作的系統寫和編譯,因為gcc含Objective-C的編譯器。
4/30:第一次用iMAC,雖然對於MAC環境還不是很熟悉,但整體畫面看起來就是比windowns舒服,大概是字體的關係吧!我也想買一台啊~~~~~~好!這不是重點!以前寫c是用dev c++撰寫,而objective-C是用Xcode,這又讓我想起之前研究OF時一直出問題不能用,新的環境剛開始當然會不習慣,再加上是英文介面(我的罩門﹦﹦),不過我還是會努力的!畢竟幾百年沒碰程式,得好好跟它培養感情…..而今天主要進度就是把一些基本介紹和程式寫法看懂!感覺接下來我應該是邊研究邊讀英文….冏
延伸閱讀
Objective-C (wiki)
Objective-C Beginner’s Guide
部IV. Objective-C 程式設計
0 回應 to “objective-C”