一、类、对象、属性和方法
1、对象是一个具体的事物,对应着一片内存空间,对象拥有属性和方法;
2、属性是某一对象具有的一些特性;
3、方法是某一对象具有的功能,也就是他能发生的行为;
4、类是一类具有相同属性的抽象;
二、类、类别、扩展、协议
1、类
类的声明:
@interface 类名 :父类
@end
类的实现:
@implementation 类名
@end
2、类别:可以在一个类的类别中声明和实现该类的方法,但不可在类别中声明实例变量,主要用于对以封装的类进行补充和完善;
类别的声明
@interface 类名 (类别名)
@end
3、扩展:在扩展中可以声明方法和实例变量,但不能实现,在其中声明的方法只能在主的类中进行实现,主要用于对需要保护的变量或方法的声明,不在h文件中公布,从而使其声明的内容得到保护;
@interface 类名 ()
@end
4、协议:协议用于两个类之间的方法调用,代码实例如下:
#import<Foundation/Foundation.h> @protocol daili <NSObject> @required - (void)doHomeWork; @end @ interface teacher :NSObject @ property(nonatomic,strong)id<daili>delegate - (void)assignHomeWork; @end @implementation teacher - (void)assignHomeWork { [_delegate doHomeWork]; } @end @interface students :NSObject<daili> - (void)doHomeWork; @end @implementation students - (void)doHomeWork { NSLog(@"do home work"); } @end int main() { teacher *ter=[[teacher alloc] init]; students *stu=[[students alloc] init]; ter.delegate=stu; [ter assignHomeWork]; return 0; }