——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
1.类方法
声明:在.h文件中声明,必须以+开头。
实现:在.m文件中实现
2.对象方法
声明:在.h文件中声明,必须以-开头。
实现:在.m文件中实现
对比:
1)类方法只能类调用,对象方法只能对象调用
2)类方法与对象方法可以同名,因为调用身份不同
3)类方法不可以访问成员变量,对象方法可以
4)类方法运行速度>对象方法,所以在不会用到成员变量时,我们就尽量使用类方法
一、首先,新建一个类Person
二、在Person.h文件中声明两个对象方法goHome()和goSchool(),声明一个类方法goHome()
#import <Foundation/Foundation.h>
@interface Person : NSObject
-(void)goSchool;
-(void)goHome;
+(void)goHome;
@end
三、在Person.m文件中实现上述三个方法:
#import "Person.h"
@implementation Person
-(void)goSchool{
NSLog(@"小明去上学");
}
-(void)goHome{
NSLog(@"小明回家了。");
}
+(void)goHome{
NSLog(@"大家都往家跑,因为该吃饭了。");
}
@end
*****主函数:*******
#import <Foundation/Foundation.h>
#import "Person.h" //引入Person头文件
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *Xiaoming = [[Person alloc]init];
[Xiaoming goHome]; // 对象 Xiaoming 调用对象方法goHome
[Xiaoming goSchool]; // 对象 Xiaoming 调用对象方法goSchool
[Person goHome]; // 类 Person 调用类方法goHome
}
return 0;
}
这篇博客探讨了Objective-C中的类方法和对象方法。类方法以+开头,在.h文件声明,.m文件实现,只能由类调用,不能访问成员变量,适合不涉及实例状态的操作。对象方法以-开头,适用于需要实例状态的情况。类方法和对象方法可以同名,调用者身份是区分它们的关键。文章通过创建Person类并定义相应方法来举例说明。
5126

被折叠的 条评论
为什么被折叠?



