objective-c 基本的程序結構

以一段程序開始java

#import <Foundation/Foundation.h>

@interface MyClass:NSObject
- (void) method;
@end

@implementation MyClass
- (void) method {
    NSLog(@"Hello,OC!\n");
}
@end

int main() {
    /* 初始化 */
    MyClass *myClass = [[MyClass alloc]init];
    
    /* 調用方法 */
    [myClass method];
    return 0;
}

終端輸出結果:函數

分析程序結構:spa

#import <Foundation/Foundation.h>

     這是一段預處理指令,告訴OC編譯器,在編譯代碼前加入Foundation 下的 Foundation.h文件
指針

  

@interface MyClass:NSObject
- (void)method;
@end

     這段代碼以@interface開始以@end結尾,定義了一個接口(MyClass),這個接口繼承NSObject這個類,NSObject類在OC中是全部類的基類。(優勢相似與java中的基類Object,可是要注意任何類繼承NSObject時必須加上":NSObject").code

其中 - (void)method; 是聲明瞭一個 沒有返回值的、不帶參數的實例方法。繼承

"-" 是說明是這個類的實例方法,只有這個類的實例才能調用。聲明方法還能夠用 "+", "+"是說明是這個類的類方法,這個類能夠調用。接口

"(void)" 是說明這個方法的返回是是void(能夠說是沒有返回值)編譯器

"method"是這個方法的名稱。it

值得注意的是方法結尾沒有一對括號,不少人剛開始時習慣加上()io


@implementation MyClass
- (void)method{
    NSLog(@"Hello,OC!\n");
}
@end

        這段代碼以@implementation開始以@end結尾,定義了MyClass類,這個類是上面MyClass接口的實現類。

      這個類中的method方法是接口的實現方法。{}內是方法的實現內容,NSLog函數是個打印輸出函數。


int main() {
    /* 初始化 */
    MyClass *myClass = [[MyClass alloc]init];
    
    /* 調用方法 */
    [myClass method];
    return 0;
}

        main函數,程序的入口。

        方法的調用方式: 

                [實例 實例方法名];

                [類名 類方法];

        分析 這段初始化方法MyClass *myClass = [[MyClass alloc]init];

        [MyClass alloc] 調用類方法,由這段代碼能夠猜出來,這個類方法返回值是個MyClass的實例,用指針變量*myClass 接收,接着這個實例調用 init 方法初始化了這個實例。這樣寫這個方法就好理解點:

MyClass *myClass = [MyClass alloc];
[myClass init];

        [myClass method]調用實例方法。


小結

    一個基本的OC程序包含: 預處理指令,接口,實現類,方法,變量。

相關文章
相關標籤/搜索