(1)在类的实现即.m文件中也可以声明成员变量,但是因为在其他文件中通常都只是包含头文件而不会包含实现文件,所以在这里声明的成员变量是@private的。在.m中定义的成员变量不能喝它的头文件.h中的成员变量同名,在这期间使用@public等关键字也是徒劳的。
(2)在@interface @end之间声明的成员变量如果不做特别的说明,那么其默认是protected的。
(3)一个类继承了另一个类,那么就拥有了父类的所有成员变量和方法,注意所有的成员变量它都拥有,只是有的它不能直接访问。
@interface
{int _name;
}
@property name;//参数为name getter(),setter()方法声明
@end
@implementation
@synthesize name=_name;//内部同用_name进行getter()和setter()实现方法的实现
@end
总结:
有@property int age;和@synthesize age;的用age实现get set
只有@property int age;的自动生成_age的get set
有@property int age;和{int _age}的_age实现。
有@property int age;和{int _age}和@synthesize age=_age的用_age实现
有@property int age;和synthesize age=_age的用_age实现 。
综上没有{int age;}的用所用_age实现的都是私有的_age;