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;
}
备注:
实现部分的主要做用就定义接口部分的方法实现;
使用方法定义后加{},在{}内写具体实现代码;
接口部分声明的方法均要实现,不然编译警告;
接口部分未声明的新方法也可在实现部分定义;