成员变量和属性

来源:互联网 发布:淘宝网怎么登不上 编辑:程序博客网 时间:2024/06/05 14:20
成员变量的作用域@interface Person : NSObject {    /*     成员变量的作用域     <1.@public        完全公开成员变量     <2.@private       只有在自己内部才可以直接访问     <3.@protected     只有在自己的内部或者子类的内部才可以‘直接访问’  _方式  ,     成员变量默认都是@protected的   在类外部不能直接访问,public可以。 类的实例->成员变量     *///    NSString *_name;//    int _age;//    @public//    int _number;}属性生成器// 属性生成器 @property/* <1.自动的生成 getter和setter方法的   声明  <2.需要知道 参数类型和属性名称 <3.是编译器的特性 */// @synthesize 生成getter 和 setter方法,最为简单的实现//@synthesize name = _name;   // 跟成员变量 _name 绑定//@synthesize age = _number;   // 跟成员变量_number 绑定// @synthesize age = _number;即- (void)setAge:(int)age {    _number = age;}- (int)age {    return _number;}在点语法访问age的时候,得到的是_number的值设置age的时候,设置的是_number的值// xcode4.5之后代码变得简单只需要写  @property int age;系统会自动生成////@implementation PersonTest {//    int _age;// @implementation中可以声明成员变量,外部无法访问//}////@synthesize age = _age;////- (void)setAge:(int)age {//    _age = age;//}//- (int)age {//    return _age;//}<pre name="code" class="objc">                // 如果子类想要对父类中的私有变量进行操作 ,就要写setter。getter方法        // 成员变量默认声明是@protected  只有在自己的内部或者子类的内部才可以‘直接访问’ 如果想要在外部访问的话,就需要写setter getter 方法        // 如果一个类声明了成员变量为 @private 只能在本类中使用 如果子类想要对父类中的私有变量进行操作 ,就要写setter。getter方法

// 当真的需要控制成员变量的值的时候,可以选择重写setter方法// 如果setter 和getter 都重写了,@property就不会自动帮助我们生成以_开头的成员变量了//@implementation PersonTest {//    int _age;// @implementation中可以声明成员变量,外部无法访问//}需要我们要自己声明 

0 0
原创粉丝点击