最简单的IOS 分类

  1. 分类.

     类别、类目、category
 
 

  2. 写1个学生类:类中有很多个方法.

 
     吃 喝 拉 撒 睡.... 基本行为
     学习、敲代码、写书.... 学习
     玩Dota 玩LOL 玩CF.... 玩
     爬山、跑步、踢足球..... 运动
     ......
 
     如果将这些方法都写在同1个类模块中.当然完全是可以的.
     如果全都写在一个模块中,就显的很臃肿. 后期难以维护和管理.
 
 
     默认情况下1个类独占1个模块.这个是将所有的成员都写在这1个模块中.就很男管理.
 
     我们的想法: 那就让1个类占多个模块.将功能相似的方法定义在同1个模块中.
               这样的好处: 方便维护和管理.
 
 
     如何将1个类分成多个模块呢?
 
 

  3. 分类:

 
     1). 顾名思义: 将1个类分为多个模块.
 
     2). 如何为1个类添加分类.
 
         
     3). 会生成1个.h 和1个.m的模块.
 
         a. 模块的文件名:  本类名+分类名.h     本类名+分类名.m
 
    
     4). 添加的分类也分为声明和实现.
 
         @interface 本类名 (分类名)
 
         @end
 
         代表不是新创建1个类.而是对已有的类添加1个分类. 小括弧中写上这个分类的名字.
         因为1个类可以添加多个分类 为了区分每1个分类.所以分类要取名字.
 
 
         @implementation Student (itcast)
         
         @end
 
         这是分类的实现.
 
 

  4. 分类的使用.

 
     1) 如果要访问分类中定义的成员,就要把分类的头文件引进来.
 
 
 

  5. 分类的作用: 将1个类分为多个模块.

 

  6. 分类的作用在于可以将我们写类分为多个模块.

 
     可以不可以为系统的类写1个分类呢?
 
     为系统自带的类写分类 这个就叫做非正式协议.
 
 

 7. 分类的第2个作用:

      为1个已经存在的类添加方法.
 
 
  分类的作用
 
  1). 将臃肿的类分为多个模块 方便管理.
 
  2). 扩展1个类.
 
 --------------------------------------------

 使用分类注意的几个地方:

    1. 分类只能增加方法,不能增加属性
 
2. 在分类之中可以写@property 但是不会自动生成私有属性. 也不会自动生成getter setter的实现.
       只会生成getter setter的声明.
       所以,你就需要自己写getter 和 setter的声明. 也需要自己定义属性 这个属性就必须在本类中.
 
3. 在分类的方法实现中不可以直接访问本类的真私有属性(定义在本类的@implementation之中)
       但是可以调用本类的getter setter来访问属性.
 
       本类的@property生成的私有属性,只可以在本类的实现中访问.
       分类中不能直接访问私有属性 真.
       分类可以使用 getter setter 来访问.
 
        4. 分类中可以存在和本类同名方法的.
        当分类中有和本类中同名的方法的时候, 优先调用分类的方法.哪怕没有引入分类的头文件.
       如果多个分类中有相同的方法, 优先调用最后编译的分类.
 
 
 ------------------------------------

 什么时候需要使用分类.

 
    1.当1个类的方法很多很杂的时候. 当1个类很臃肿的时候,那么这个时候我们就可以使用分类. 
将这个类分为多个模块.将功能相似的方法写在同1个模块之中.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值