1、类声明
@interface Person : NSObject { @public int _height; int _weight; int _age; } // 如果你不想每次使用方法都需要创建对象开辟存储空间 // 并且如果该方法中没有使用到属性(成员变量), 那么你可以把这个方法定义为类方法 // 对象方法用对象调用 类方法用类调用 // 如果定义类方法, 类方法的写法和对象方法一模一样, 除了前面的-号不同以外,只需要将对象方法的-号换成+, 那么就定义了一个类方法 + (int)sumWithValue1:(int)value1 andValue2:(int)value2; - (int)sumWithValue1:(int)value1 andValue2:(int)value2; @end
2、类实现
@implementation Person // 行为的实现 // 注意: 如果声明的是对象方法那么就必须实现对象方法 // 如果声明的是类方法那么就必须实现类方法 + (int)sumWithValue1:(int)value1 andValue2:(int)value2 { return value1 + value2; } - (int)sumWithValue1:(int)value1 andValue2:(int)value2 { return value1 + value2; } @end
3、main函数
int main(int argc, const char * argv[]) { Person *p = [Person new]; // 通过类创建对象 int sum0 = [p sumWithValue1:10 andValue2:20]; //调用对象方法 int sum1 = [Person sumWithValue1:10 andValue2:20]; //调用类方法 NSLog(@"sum0 = %i,sum1 = %i, sum0,sum1); return 0; }
类方法和对象方法的区别
0. 对象方法以-开头
类方法以+开头
1. 对象方法必须用对象调用
类方法必须用类来调用
2. 对象方法中可以直接访问属性(成员变量)
类方法中不可以直接访问属性(成员变量)
3. 类方法和对象方法可以进行相互调用
类方法的应用场景:
如果方法中没有使用到属性(成员变量), 那么能用类方法就用类方法
类方法的执行效率比对象方法高
时间: 2024-11-06 22:45:09