黑马程序员---成长之路-----OC之基础篇类方法

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流!



第一讲 类方法的概述

在OC中我们可以申明两种方法,一种是实例方法一个对象(个人理解为对象方法,严格来说类也是一个对象,但是为方便理解完全可以认为是对象方法),一种是类方法。实例方法就是一个以 - 号开头的方法,它在类的一个具体实例范围内执行,也就是说,在你调用一个实例方法前,你必须先创建类的一个实例。类方法相对而言更简单一些,它没有实例,类方法是以+号开头的方法,类方法就是类调用的方法,不依赖与任何对象方法。其实简单点说就是类方法必须由类来调用,而对象方法必须由对象方法来调用。

类方法调用格式:[类名 方法名];

下面我们来看看对象调用方法和类调用方法有什么不同:

首先来看对象调用方法:

//Person类
//方法的申明
-(void)run;
//方法的实现
-(void)run{ NSLog(@"跑");}
//对象调用必须先创建一个实例对象
Person *p=[Person new];
//调用方法[p run];


再来看类调用方法:

//Person类
//方法的申明
+(void)run;
+(void)run{ NSLog(@"跑");}
//调用方法
[Person run];

</pre><pre>

从上面的示例我们可以很明显的看到不同之处。

第二讲 类方法的注意事项

1、类方法可以和实例方法同名,这个并不会影响使用,实例方法有实例对象访问调用,类方法通过类来访问调用,不会有相互交叉影响,加减符号已经明确的甄别了他们的调用方式。

2、类方法可以从父类当中继承过来,子类可以重写类方法,在Xcode编译器下,有许多方法是编译器自带的,比如description类方法,它就可以在子类中重写,以达到我们期望的效果!

3、类方法和实例方法一样在interface里申明在impelementation里实现

4、类方法只能被向类发送类方法消息才会被执行,向实例对象发送类方法不能被执行。

5、在类方法中使用self,这个self执行的类对象class object而不是实例对象instance object。第三讲 类方法的优点及其易犯错误
类方法相对实例方法有很多的优点:
1、节省了内存空间。
2、 提高了工作效率。
3、 作为工具方法。 
在不需要实例对象的情况下,使用类方法会省去很多步骤,这是它的优势所在。易犯错误:在类方法中使用了类的成员变量。

@impementation Person
+(void) run{

NSLog(@"正在吃%@",_food)//这是错误的,程序根本不能执行,会报错

}






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值