您的位置:首页 > 职场人生

黑马程序员------OC基础-----@property和@synthesize

2015-02-08 20:43 197 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

@property : 可以自动生成某个成员变量的setter和getter声明

@synthesize自动生成age的setter和getter实现,并且会访问_age这个成员变量

请看示例:

#import <Foundation/Foundation.h>
#import "Person.h"
#import "Car.h"
#import "Dog.h"
#import "Cat.h"

int main() {
@autoreleasepool {
Dog *d = [Dog new];

d.age = 5;

NSLog(@"%d", d.age);
}
return 0;
}


********************************************************************
<pre name="code" class="objc">#import <Foundation/Foundation.h>
@interface  Person : NSObject
{
int _age;
//int age;

int _height;

double _weight;

NSString *_name;
}

// @property : 可以自动生成某个成员变量的setter和getter声明
@property int age;
//- (void)setAge:(int)age;
//- (int)age;

@property int height;
//- (void)setHeight:(int)height;
//- (int)height;

- (void)test;

@property double weight;

@property NSString *name;

@end



********************************************************************
#import "Person.h"

@implementation Person

// @synthesize自动生成age的setter和getter实现,并且会访问_age这个成员变量
@synthesize age = _age;

@synthesize height = _height;

@synthesize weight = _weight, name = _name;

@end


********************************************************************
#import <Foundation/Foundation.h>

@interface  Car : NSObject
{
//int _speed;
//int _wheels;
}

@property int speed;
@property int wheels;
//@property int speed, wheels;

- (void)test;
@end


********************************************************************
#import "Car.h"

@implementation Car
//@synthesize speed = _speed, wheels = _wheels;
// 会访问_speed这个成员变量,如果不存在,就会自动生成@private类型的_speed变量
@synthesize speed = _speed;
@synthesize wheels = _wheels;

- (void)test
{
NSLog(@"速度=%d", _speed);
}
@end


********************************************************************
#import <Foundation/Foundation.h>

@interface  Dog : NSObject
@property int age;
@end


********************************************************************

#import "Dog.h"

@implementation Dog

- (void)setAge:(int)age
{

}

@end


********************************************************************
#import <Foundation/Foundation.h>

@interface  Cat : NSObject
{
//int _age;
//int age;
}
@property int age;
@end


********************************************************************
#import "Cat.h"

@implementation Cat

// 默认会访问age这个成员变量,如果没有age,就会自动生成@private类型的age变量
@synthesize age;

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐