@public:在任何地方都能直接访问对象的成员变量;
@private:只能在当前类的对象方法中直接访问;
@protected:可以在当前类以及其子类的对象方法中直接访问;(默认情况下就是@protected)
@package:只要处在同一框架中,就能直接访问对象的成员变量;
*** 成员变量还可以在类的.m文件中声明 但是 所声明的变量是私有变量。
@property 应用
① 用在@interface中;
② 用来自动生成setter和getter的声明;
③ 用@property int age;就可以替代下面的两行;
- (int)age; // getter方法
- (void)setAge; // setter方法
示例:
#import <Foundation/Foundation.h>
@interface People : NSObject
{
int age;
float weight;
}
@property int age; // 等价下面的注释
/*
- (int)age; // getter方法
- (void)setAge; // setter方法
*/
@end
@synthesize 应用
① 用在@implementation中;
② 用来自动生成setter和getter方法的实现;
③ 用@synthesize age =_age;就可以替代
- (void)setAge:(int)age
{
_age = age ;
}
- (int)age
{
return _age ;
}
示例:
#import "People.h"
@implementation People
@synthesize age =_age; // 等价下面注释
/*
- (void)setAge:(int)age
{
_age = age ;
}
- (int)age
{
return _age ;
}
*/
@end