类方法和实例方法的区别

我们都知道,在OC中,方法前有“+”的表示类方法,前面有“-”的代表实例方法

那么究竟什么是类方法,什么是实例方法呢?在什么情况下定义类方法,在什么情况下定义实例方法呢?


1.类方法类似于C++中的static函数。它的调用不需要通过实例,也不能调用类中的实例方法。其调用方法为:[类名 方法名]

2.实例方法则必须通过实例来调用,换句话说,一个类在没有初始化实例的情况下是不能调用实例方法的,它的调用方法为:[实例名 方法名]

3.那么,在什么情况下定义类方法,在什么情况下定义实例方法呢?举个例子进行说明

   比如,车是一个类。那么,同一型号的车就是车这个类的不同对象,他们有着相同的初始属性(比如型号、发动机等)。

   如果我们把洗车看作是一个方法,那么,洗车是一个实例方法。为什么?因为洗车对应的是这一辆车,而不是车这一个类。

   如果我们把统计一共生产了多少辆这样的车看作一个方法的话。这个方法就是类方法,因为它针对的是车这一个类,而不是具体的哪一辆车。


综上,如果我们定义的方法中需要修改实例的属性的话,就要定义成实例方法,如果不需要用到具体实例中的属性,就定义成类方法。

    

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值