Objective-C教程:Objective-C類的定義

Objective-C是面向對象的編程語言,因此具有面向對象編程語言的共性即:支持可重用的數據和函數的封裝體,也就是你們常說的類。那麼類究竟是什麼呢? 其實,類就是在結構體的基礎上發展的產物,結構體只能處理數據,在結構體之上增長對該數據處理的函數,就構成類的概念。類使程序總能提供對數據專門處理函數的安全調用,使得一系列的機能做爲一個子系統供安全且重複的使用。編程

像結構體同樣,類在使用以前必須先聲明,可是Objective-C並無像其餘面嚮對象語言那樣提供聲明類的專用關鍵字或者語法,而是用編譯處理指令來實現,特徵是類聲明語句都須以@符號開始。安全

類聲明的編譯處理指令以@interface開始,以@end結尾,在這之間代碼即是類變量的定義和方法的聲明。類的聲明和定義比其餘語言複雜,這會讓剛開始學習Objective-C的人很是困惑(準確的說,其餘語言如Java只需定義類而不用聲明,而Objective-C須要先聲明再定義)。編程語言

類的定義兩部分:接口部分和實現部分,一般分別寫在兩個文件中。函數

接口部分(.h):oop

聲明瞭類名、父類名、實例變量(特徵)和方法聲明(行爲)。以@interface開始,以@end結束學習

@interface TestCoop : NSObject {code

int iMonth;

int iYear;

int iDay;

}對象

  • (void) setYear: (int) iYear;接口

  • (void) primalSetData: (int)iYear :(int)iMonth :(int)iDay;原型

  • (void) setData: (int)Year iMonth:(int)iMonth iDay:(int)iDay;

  • (void) displayDateInfo;

@end

備註: 一、TestCoop:類名 二、NSObject:父類名 三、iMonth iYear iDay :成員變量 四、「- (void) setYear: (int) iYear;」前面的短線/- 表示這是Objective-C方法的聲明,用來區分函數原型(C語言中)與(Objective—C中)方法聲明的方式。短線後面是方法的返回類型/好比setYear爲參數的描述,後面加冒號和參數類型(int)與參數名字iYear,好比:

  • (void) setYear: (int) iYear;//單個參數
  • (void) primalSetData: (int)iYear :(int)iMonth :(int)iDay;//多個參數

實現部分(.m):

方法的具體實現。以@implementation開始,以@end結束 示例代碼:

@implementation TestCoop

  • (void) displayDateInfo{

    NSLog(@"Today is: %d.%d.%d\n", iYear, iMonth, iDay);

}

  • (void) setYear: (int) year{

    iYear = year;

}

  • (void) primalSetData: (int)year :(int)month :(int)day{

    iYear = year;

    iMonth = month;

    iDay = day;

}

  • (void) setData: (int)year iMonth:(int)month iDay:(int)day{

    iYear = year;

    iMonth = month;

    iDay = day;

}

備註:

  1. 實現部分的主要做用就定義接口部分的方法實現;
  2. 使用方法定義後加{},在{}內寫具體實現代碼;
  3. 接口部分聲明的方法均要實現,不然編譯警告;
  4. 接口部分未聲明的新方法也可在實現部分定義;
相關文章
相關標籤/搜索