OC_类方法

262 阅读1分钟

类方法与对象方法

  • 类方法与对象方法的基本区别
    • 对象方法的声明方法为 - (返回类型)方法名;
      - (void)eat;
      
    • 对象方法在使用时必须先实例化对象,再通过对象调用对象方法。
      Person *p1 = [Person new];
      [p1 eat];
      //使用Person类实例化对象p1,通过p1调用对象方法eat
      
    • 类方法的声明方式为 + (返回类型)方法名;
      + (void)run;
      
    • 类方法在使用时不需要实例化对象,可以直接通过类名调用
      [Person run];
      //使用Person类调用类方法run
      

类方法的特点

  • 类方法更加节约空间,因为类方法不需要创建对象。
  • 类方法能够提高效率。
  • 类方法不能直接访问类属性,但可以在类方法中创建对象,访问创建的对象的属性,同理类方法中不能通过self的方式调用其他对象方法。
  • 在对象方法中可以直接调用类方法。

类方法的规范

  • 当我们编写一个类时,我们需要为这个类提供一个和类名同名的类方法,这个类方法中需要创建一个初始化的对象并返回。
    + (instancetype)person{
        return [Person new];
    }
    

何时应该使用类方法

  • 当一个方法不需要直接访问属性,也不需要调用其他对象方法,这样的方法我们可以将其定义为类方法,从而节省空间提高效率。