Objective-C 快速導覽 - 建構方法

自訂類別 (class) 都須繼承 NSObject , NSObject 的 alloc 用來分配記憶體空間, init 用來初始化物件 (object) ,後者 init 就是個建構方法 (constructor) ,俗稱建構子。



當然我們可以自訂建構方法,自訂建構方法的好處是可以直接初始化屬性 (property) 值。


通常自訂的建構方法是以 init 作為字首,亦可以 super 先傳遞 init 給父類別 (superclass) ,舉例如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#import <Foundation/Foundation.h>
 
@interface Demo: NSObject
{
    int a;
    int b;
}
 
@property int a, b;
 
- (id) initProperty;
 
@end
 
@implementation Demo
 
@synthesize a, b;
 
- (id) initProperty
{
    self = [super init];
    if (self) {
        a = 0;
        b = 1;
    }
  
    return self;
}
 
@end
 
int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
  
    Demo *demo = [[Demo alloc] initProperty];
    NSLog(@"a: %i", demo.a);
    NSLog(@"b: %i", demo.b);
  
    [pool drain];
    return 0;
}
 
/* 《程式語言教學誌》的範例程式
   檔名:classdemo16.m
   功能:Objective-c 程式範例
   作者:張凱慶
   時間:西元 2013 年 4 月 */


編譯執行,結果如下



中英文術語對照
類別class
物件object
建構方法constructor
屬性property
父類別superclass


您可以繼續參考
類別


相關目錄
Objective-C 快速導覽
Objective-C 教材
首頁



參考資料
Programming with Objective-C: About Objective-C
Programming with Objective-C: Working with Objects

沒有留言: