Person.h
#ifndef oc_Person_h #define oc_Person_h @interface Person : NSObject { int age; @protected float height; } - (int) age; //get方法 - (void) setAge:(int)pAge; //set方法 @end #endif
Person.m
#import <Foundation/Foundation.h> #import "Person.h" @implementation Person - (int) age { return age; } - (void) setAge:(int)pAge { age = pAge; } @end
main.m
int main() { Person* per = [[Person alloc] init]; int age = [per age]; //调用get方法 [per setAge:16]; //调用set方法 //使用“.” 来调用get/set 使用的都是原始变量名,这就要求变量的get、set都符合约定 int age2 = per.age; //get per.age = 17; //set return 0; }
每次这样写get/set方法,很麻烦,OC有一个自动化的方法,即使用@proterty和@synthesize关键字
Person.h
#ifndef oc_Person_h #define oc_Person_h @interface Person : NSObject { int age; @protected float height; } //- (int) age; //- (void) setAge:(int)pAge; @property int age; //编译器自动解释成 int age的get/set方法 的声明 @end #endif
Person.m
#import <Foundation/Foundation.h> #import "Person.h" @implementation Person //- (int) age //{ // return age; //} // //- (void) setAge:(int)pAge //{ // age = pAge; //} @synthesize age; //编译器自动解释成 age的get、set方法实现 @end
时间: 2024-11-06 07:39:08