zoukankan      html  css  js  c++  java
  • 分类(类别,category),类扩展

    --分类的作用:为原有的类增加一个方法,扩展分类的作用,靠扩oc中原有的类和自己创建的类(扩展已有类的功能)

    1.分类是原来的类增加方法

    2.在方法内部可以访问原有类的成员变量(定义在头文件中的)

    一、步骤:

    1.为原有类创建一个分类

    2.在分类中增加新的方法和实现

    二、注意点:

    1.分类不能扩展原有类的成员变量

    2.@property在分类中只能生成getter setter方法的声明,不能生成实现和成员变量

    三、分类可以扩展系统自带的的类功能

    1.给NSObject增加分类会影响到所有的类,所有一定要谨慎小心

    2.不能在分类中定义与原有类同名方法,分类之间也不可以有同名的方法

    4.如果在分类中增加一个与原有类同名的方法,那么分类中这个方法会覆盖原有类的方法(哪怕没有导入过这个分类)

    5.多个分类中如果有相同的方法,最后编译分类的方法

    四、类扩展(在ui中封装某个控件用的比较多)

    1.类扩展的作用:一般定义在.m文件中,为类增加私有的属性和方法(私有的属性和方法,类外不能使用,也不能被继承)

    2.步骤:

           (1)可以通过增加一个文件(只有.h文件)的方法(不建议)

           (2)直接在.m文件中写一个@interface 类名 (),括号中不要有任何内容,在.m 文件中表示只能是私有的(建议)

    类扩展与分类的区别:

    分类:为原有类增加方法,能被继承和外界使用,用过增加一个category文件(一个.h文件一个.m文件)的方法使用,扩展原有类的方法,不能增加成员变量

    类扩展:为类增加私有的成员变量和方法。

    分类的@interface的括号中有内容,在类扩展中没有

    分类和继承的区别:

          1.类别是对方法的扩展,不能添加成员变量。继承可以在原来父类的成员变量的基础上,添加新的成员变量
          2.类别只能添加新的方法,不能修改和删除原来的方法。继承可以增加、修改和删除方法。
          3.类别不提倡对原有的方法进行重载。继承可以通过使用super对原来方法进行重载。
          4.类别可以被继承,如果一个父类中定义了类别,那么其子类中也会继承此类别。 

  • 相关阅读:
    Saltstack module acl 详解
    Saltstack python client
    Saltstack简单使用
    P5488 差分与前缀和 NTT Lucas定理 多项式
    CF613D Kingdom and its Cities 虚树 树形dp 贪心
    7.1 NOI模拟赛 凸包套凸包 floyd 计算几何
    luogu P5633 最小度限制生成树 wqs二分
    7.1 NOI模拟赛 dp floyd
    springboot和springcloud
    springboot集成mybatis
  • 原文地址:https://www.cnblogs.com/xiaofei993/p/5314424.html
Copyright © 2011-2022 走看看