简单的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


‌关键点说明‌

  1. ‌文件分工‌

    • .h文件声明类的公开接口(属性、方法),供其他类导入使用。
    • .m文件实现具体逻辑,可包含私有变量和方法。12
  2. ‌属性语法‌
    @property自动生成成员变量的getter/setter,通过_变量名直接访问成员变量。38

  3. ‌初始化方法‌
    initWithName:age:为自定义初始化方法,需调用父类[super init]确保继承链正常初始化。8

  4. ‌内存管理‌
    copy修饰符确保字符串拷贝为不可变类型,避免外部修改影响内部值(NSString常用copy)。3

posted on 2025-05-08 02:55  漫思  阅读(35)  评论(0)    收藏  举报

导航