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

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



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


通常自訂的建構方法是以 init 作為字首,亦可以 super 先傳遞 init 給父類別 (superclass) ,舉例如下
#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;
}

/* 《程式語言教學誌》的範例程式
   http://pydoing.blogspot.com/
   檔名: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

沒有留言: