1.使用场合不同。面向过程的语言中可以有函数,比如C语言,面向对象的语言中也有函数,比如OC, java,c++.但是方法只会出现在面向对象的语言中。
2.定义方式不同。函数的定义是 返回值类型 函数名(形参1,形参2...)
方法(OC中)的定义是 -(返回值类型)方法名:(形参类型)形参1 (形参类型)形参2 当然如果是类方法的话,前面是+号
3.在OC中,函数可以定义在任意在位置(@interface @end除外).而方法必须定义在@implementation@end之间。
4.方法分类方法和对象方法,函数没有这么分
5.方法是在类中开辟存储空间的,对象找方法是通过isa指针,并把方法封装成SEL类型。而函数是在单独的区域中开辟的,函数名就是函数的指针,即函数的入口地址
6.OC中苹果官方类方法的名字比较长,有时候是个句子体现实际意义。但是函数名不像方法名那样,一般是几个单词
7.OC中set方法和get方法,dealloc方法,init方法等有些每个类都会有的方法,但函数每个都会有的是main()函数
8.OC中方法名中也有可能包含:,而函数中只能是数字,字母,下划线
9.方法可以继承,但函数不可以
以上是个人理解。有错误还请大家指出 |