OC的类方法、对象方法和函数

时间:2023-01-29 12:02:17

OC语言中的方法和函数是有区别的:类内部叫方法,单独定义的叫函数,定义的格式也不同

类方法:+ (void) 方法名、对象方法:- (void) 方法名、函数:void 函数名(参数列表)

 #import <Foundation/Foundation.h>

 void test();//test函数的声明

 //类Person的声明
@interface Person : NSObject
+ (void)test;//类方法
- (void)test;//对象方法
- (int)sumWithNum1 : (int)num1 andNum2 : (int)num2;//带参数对象方法的规范定义 @end //类Person的实现
@implementation Person
+ (void)test
{
//类方法中可以通过创建对象调用对象方法
Person *pp = [Person new];
[pp test]; test();
NSLog(@"this is +test");
}
- (void)test
{
test();
//[Person test];//对象方法中可以调用类方法
NSLog(@"this is -test");
}
- (int)sumWithNum1 : (int)num1 andNum2 : (int)num2
{
return num1 + num2;
}
@end int main()
{ Person *p = [Person new];
[Person test];
[p test1];
} //函数的实现
void test()
{
NSLog(@"这是函数");
}

结论:1->类方法名,对象方法名,函数名可以一样,他们的调用者不同所以互不影响

2->函数是不可以调用类方法或者对象方法的

3->函数可以被类方法和对象方法调用,类方法内部还可以通过创建该类的对象调用对象方法