//
// main.m
// OC分类概念及使用
//
// Created by herobin on 16/1/4.
// Copyright © 2016年 herobin. All rights reserved.
/*
分类:Category
是OC特有的语法,其他语言没有的语法
分类的作用
概念: 在不修改原有的类的基础上增加新的方法
一个庞大的类可以分模块开发
一个庞大的类可以由多个人来编写,更有利于团队合作
使用分类的目的
1 对现有类进行扩展
比如,你可以扩展Cocoa touch框架中的类,你在类别中增加的方法会被子类所继承,而且在运行时跟其他的方法没有区别
2 作为子类的替代手段
不需要定义和使用一个子类,你可以通过类别直接向已有的类里增加方法
3 对类中的方法归类
利用category把一个庞大的类划分为小块来分别进行开发,从而更好地对类中的方法进行更新和维护
分类的使用步骤
先声明分类 --> 实现分类 ---> 使用分类
分类的命名规则: 类名+扩展方法 如"NSString+countNum"
分类的接口声明与类的定义十分相似,但分类不继承父类,需要带有一个括号,表明该分类的主要用途
声明类 注意:不允许在分类中声明实例变量,不能给类扩展新的属性
@interface 类名:父类名
@end
声明分类:
@interface 类名(分类名)
中间可以声明方法
method1
method2...
@end
实现类:
.m中 @implementation 类名
@end
实现分类:
@implementation 类名(分类名)
//实现分类中声明的方法
@end
再增加一个分类:playGame (用文件来增加)
有两个方法 playlol playdota
*/
#import <Foundation/Foundation.h>
//分类记得也要导入头文件
#import "Person+playGame.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p = [Person new];
//如果p能调用 eat 和 run 说明分类已经成功给Person增加新的方法
// base分类增加的方法
[p eat];
[p run];
// playGame分类增加的方法
[p playLol];
[p playDota];
}
return 0;
}
|
|