A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© herobin 中级黑马   /  2016-1-10 21:02  /  489 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//
//  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;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马