A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蜗牛快跑 中级黑马   /  2014-10-16 20:36  /  823 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

@public     //在任何地方都能直接访问对象的成员变量。
@private    //只能在当前类的对象方法中直接访问。(@implementation中默认是@private)
@protected  //能在当前类和子类的对象方法中直接访问。(@interface中默认就是@protected)
@package:只要处在同一个框架中,就能直接访问对象的成员变量。

@interface中:
@property:可以自动生成某个成员变量的setter和getter声明。
@property int age;相当于:

- (void)setAge:(int)height;
- (int)age; 这两句。

但是@property;生成的set类是 - (void)set_Age:(int )height;
所以我们在main方法里应该调用set_age方法。

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

版本更新以后xcode只用@property int age就可以完成:
(1)对age的get set 声明。
(2)生成_age成员变量。 默认为@private   
(3)对age的get set 实现。
这3件事。

注意:@synthesize age;  //默认会访问age这个成员变量。

手动实现
若手动实现了getter方法,编译器就会自动生成仍getter方法
若手动实现了getter方法,编译器就会生成setter方法
若同时手动实现了setter和getter方法,编译器就会自动生成能够不存在的成员变量

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

1 个回复

倒序浏览
加油!努力向前!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马