一 概述
我们前几节课学的对象方法是以-
开头,先创建好对象,然后调用减号开头的对象方法;本文介绍类方法,类方法不用创建对象,直接类名调用,且方法开头标示是+
号。
二 代码示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #include <Foundation/Foundation.h> @interface Person:NSObject { int age; } +(void)printClassName; -(void)test; +(void)test; @end @implementation Person +(void)printClassName { NSLog(@"这个类叫做Person"); } -(void)test { //NSLog(@"调用了对象方法———————test"); [Person test]; } +(void)test { NSLog(@"调用了类方法+++++++++test"); } @end int main() { //[Person test]; //[Person printClassName]; Person *p=[Person new]; [p test]; return 0; }
|
三 总结
3.1 对象方法
- 减号
-
开头
- 只能让对象调用,没有对象,这个方法根本不可能被执行
- 对象方法能访问实例变量(成员变量)
3.2 类方法
- 加号
+
开头
- 只能用类名调用,对象不能调用
- 类方法中不能访问成员变量(实例变量)
3.3 类方法的好处和使用场合
- 不依赖于对象,执行效率高
- 能用类方法尽量用类名调用
- 场合:当方法内部不需要使用到成员变量时,就可以改为类方法