黑马程序员---OC类方法

类方法和实例方法的区别


实例方法在调用前,你必须首先创建类的一个实例

而类方法的调用,不需要创建类的对象,总之,类的调用,不依赖于任何对象

 

类方法的调用

语法

[类名称 类方法名称]

 

类方法使用注意事项:


1)类方法可以和实例方法同名,这个并不影响使用,实例方法由实例对象访问调用,类方法要通过类访问调用,不会有交叉相互影响。

 @interface Test : NSObject

 //声明对象方法

 - (void)method;

 //声明类方法

 + (void)method; 

 @end

 

 @implementation Test


 - (void)method {

  NSLog(@"instance Method");

 }

 

 + (void)method {

  NSLog(@"class Method");

 }

 

 }

 

 @end

 int main(int argc, const char * argv[]) {

 @autoreleasepool {

 

  Test * object = [Test new];

   //调用对象方法

     [object method];

  //调用类方法

     [Test method];

 

  }

     return 0;

 }

 运行结果如下:

 2015-08-04 13:00:10.406 04-类方法的注意事项[509:26514] instance Method

 2015-08-04 13:00:10.407 04-类方法的注意事项[509:26514] class Method

 

2)类方法也可以是从父类继承而来,子类可以重写类方法,description类方法就可以在子类 里重新定义这个方法。 

3)类方法和实例方法一样在interface里声明,implementation里实现。 

4)类方法只能被类调用执行,向实例对象发送类方法是不能被触发执行的。 

5)在类方法里使用了self,这个self执行的类对象class object而不是实例对象instance object

类方法易犯的错误

 

在类方法中使用了类的成员变量

 // 通过类方法实现两个数的平均值

 + (float)avg{

    return _result / 2; //_result 是实例变量

 }

 注意类的方法中不能使用实例变量

 

 类方法应用场景

 1、类方法的优点:

 1)节省内存空间 

 2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值