Objective-C 的資本資料型態如下列表
型態類型 | 關鍵字 | 範圍 |
---|---|---|
字元(整數) | char | ASCII 字元 |
整數 | short int | -32768~32767 |
整數 | unsigned short int | 0~65535 |
整數 | int | -2147483648~2147483647 |
整數 | unsigned int | 0~4294967295 |
整數 | long int | -2147483648~2147483647 |
整數 | unsigned long int | 0~4294967295 |
整數 | long long int | -9223372036854775808 ~ 9223372036854775807 |
整數 | unsigned long long int | 0~18446744073709551615 |
浮點數 | float | 依據 IEEE 754 標準 |
浮點數 | double | 依據 IEEE 754 標準 |
浮點數 | long double | 依據 IEEE 754 標準 |
布林值(整數) | BOOL | YES, NO, signed char |
通用型態 | id | 任何型態的物件或常數 |
基本資料型態分為整數與浮點數兩大類,字元、布林值實際上屬於整數,通用型態 id 比較特別,它可以是任何型態的物件或常數。
使用變數前須先宣告所屬型態,然後可以運用指派運算子將常數 (constant) 指派給變數,常數也就是程式中直接寫出來的數值,以下表示布林值 (Boolean value) 、字元 (character) 、整數 (integer) 與浮點數 (floating-point number) 的字面常數
BOOL a = YES; char b = '2'; int c = 2; double d = 2.0;
整數 0 或常數 NO 為布林真假值中的「假」,或稱之 false ,其他非 0 的值或常數 YES 都會被當成布林真假值中的「真」,或稱之 true 。
使用變數前,都得先宣告 (declare) 要使用的識別字,宣告形如上例,寫完型態名稱後接空格,然後接識別字名稱
TypeNname identifier;
通常基本資料型態所需要用到的記憶體空間有限,因此編譯器 (compiler) 會直接分配基本資料型態的記憶體空間,變數直接指向該記憶體空間。如果變數指向的是物件 (object) ,由於物件需要的記憶體空間相當龐大(相較基本資型態來講),因此物件變數就得宣告成指標,例如 demo.m 中
// 建立自動釋放池物件, alloc 為配置記憶體區域, init 為初始化物件 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
pool 為指向 NSAutoreleasePool 型態物件的指標。另外 s1 、 s2 、 s3 分別是指向不同 NSString 型態的字串物件
// 建立三個 NSString 字串物件 NSString *s1 = @"\n\n這是 Objective-C 的第一個程式...\n"; NSString *s2 = @"使用 Foundation.h 中的 NSLog() 來輸出...\n"; NSString *s3 = @"程式執行結束...\n\n";
宣告變數時使用 * 於識別字左側表示該變數為指標,有沒有空格或插入多個空格都沒關係。宣告指標變數的形式如下
TypeNname *pointer;
建立物件需要先分配記憶體空間,然後將物件初始化。由於 Objective-C 的所有物件都已繼承 (inherit) 或須自行設定繼承自 NSObject , NSObject 為 Objective-C 所有物件之母,因此可使用 NSObject 的 alloc 方法分配記憶體空間,接著利用 NSObject 的 init 初始化物件,或自行設計初始化方法。
繼承 (inheritance) 是物件導向程式語言 (object-oriented progamming language) 中的一項重要特性,使物件的模板,也就是類別 (class) 可以衍生自其他類別,子類別 (subclass) 可以擁有父類別 (superclass) 的特性。
「繼承」是程式語言社群習慣用詞,英文動詞原文為 inherit ,意思泛指從什麼得到什麼,所以生物學中的「遺傳」也是用這個詞。實際上物件導向程式設計的繼承機制相當複雜,然而中文的繼承常用於某物不再,另物將起的意思,譬如我繼承某某的精神,雖然某某不見得已死,可是將來要付出努力的卻是我而非某某,因而這裡的意思中文用「遺傳」比較恰當,子代會從親代遺傳性狀,子代與親代也會並存一段時間,這就沒有某物不再的意含了。
這是我們稍後設計類別所需要有的的基本認識,現在,我們來看看變數命名規則吧!
中英文術語對照 | |
---|---|
變數 | variable |
識別字 | identifier |
基本資料型態 | basic data type |
數值 | value |
指標 | pointer |
常數 | constant |
布林值 | Boolean value |
字元 | character |
整數 | integer |
浮點數 | floating-point number |
宣告 | declare |
編譯器 | compiler |
物件 | object |
繼承 | inherit, inheritance |
物件導向程式語言 | object-oriented progamming language |
類別 | class |
子類別 | subclass |
父類別 | superclass |
您可以繼續參考
基礎篇
相關目錄
Objective-C 入門指南
Objective-C 教材
首頁
參考資料
Learning Objective-C: A Primer
The Objective-C Programming Language
Cocoa Fundamentals Guide
Coding Guidelines for Cocoa
Advanced Memory Management Programming Guide
Archives and Serializations Programming Guide
沒有留言:
張貼留言