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,好比:
實現部分(.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;
}
備註:
實現部分的主要做用就定義接口部分的方法實現;
使用方法定義後加{},在{}內寫具體實現代碼;
接口部分聲明的方法均要實現,不然編譯警告;
接口部分未聲明的新方法也可在實現部分定義;