类方法和实例方法

来源:互联网 发布:智能数据营销 编辑:程序博客网 时间:2024/06/03 18:43

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

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



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

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

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

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

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

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


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