简单的Objective-C类.h和.m文件示例
以下是一个简单的Objective-C类.h和.m文件示例,展示了基础语法和文件结构:
Person.h(头文件:声明类、属性和方法)
objective-cCopy Code
#import <Foundation/Foundation.h> @interface Person : NSObject // 属性声明(自动生成getter/setter) @property (nonatomic, copy) NSString *name; @property (nonatomic, assign) NSInteger age; // 初始化方法声明 - (instancetype)initWithName:(NSString *)name age:(NSInteger)age; // 实例方法声明 - (void)introduce; @end 12
Person.m(实现文件:具体实现逻辑)
objective-cCopy Code
#import "Person.h" @implementation Person // 实现初始化方法 - (instancetype)initWithName:(NSString *)name age:(NSInteger)age { if (self = [super init]) { _name = [name copy]; // 成员变量通过下划线访问 _age = age; } return self; } // 实现实例方法 - (void)introduce { NSLog(@"Hello! I'm %@, %ld years old.", self.name, (long)self.age); } @end 38
main.m(使用示例)
objective-cCopy Code
#import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { // 创建对象 Person *person = [[Person alloc] initWithName:@"Tom" age:25]; // 调用方法 [person introduce]; // 输出: Hello! I'm Tom, 25 years old. // 修改属性 person.age = 26; [person introduce]; // 输出: Hello! I'm Tom, 26 years old. } return 0; } 78
关键点说明
-
文件分工
.h文件声明类的公开接口(属性、方法),供其他类导入使用。.m文件实现具体逻辑,可包含私有变量和方法。12
-
属性语法
@property自动生成成员变量的getter/setter,通过_变量名直接访问成员变量。38 -
初始化方法
initWithName:age:为自定义初始化方法,需调用父类[super init]确保继承链正常初始化。8 -
内存管理
copy修饰符确保字符串拷贝为不可变类型,避免外部修改影响内部值(NSString常用copy)。3
漫思
浙公网安备 33010602011771号