// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { @public int _age; int age; int _number; } /* @porperty是一个编译器指令 在Xocde4.4之前, 可以使用@porperty来代替getter/setter方法的声明 也就是说我们只需要写上@porperty就不用写getter/setter方法的声明 编译器只要看到@property, 就知道我们要生产某一个属性的getter/setter方法的声明 - (void)setAge:(int)age; - (int)age; */ @property int age; //就可以使用 [p setAge:88]; @end
// // Person.m #import "Person.h" @implementation Person /* @synthesize是一个编译器指令, 它可以简化我们getter/setter方法的实现*/ @synthesize age = _age; // 赋值给_age /* - (void)setAge:(int)age { _age = age; } - (int)age { return _age; } */ /*@synthesize age = _number; 赋值给_number - (void)setAge:(int)age { _number = age; } - (int)age { return _number ; } */ // 如果在@synthesize后面没有告诉系统将传入的值赋值给谁, 系统默认会赋值给和@synthesize后面写得名称相同的成员变量 /* // _age? age : age @synthesize age; //就可以使用 [p setAge:88]; - (void)setAge:(int)age { _age = age; } - (int)age { return _age; } */ @end
// // main.m // synthesize基本使用 // // Created by xiaomage on 15/6/23. // Copyright (c) 2015年 xiaomage. All rights reserved. // #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { Person *p = [Person new]; [p setAge:88]; NSLog(@"age = %i , p->_age = %i", [p age], p->_age); NSLog(@"_age = %i, _number = %i", p->_age, p->_number); NSLog(@"_age = %i, age = %i", p->_age, p->age); return 0; }
时间: 2024-10-10 00:47:23