美文网首页OC学习
OC中实例变量可见度 &&setter 与 g

OC中实例变量可见度 &&setter 与 g

作者: 李小六_ | 来源:发表于2015-05-08 09:42 被阅读232次
    1. 成员变量的可见度

    • @public 类的外部和内部都可以访问
    • @protected 受保护的, 外部不能访问, 内部可以访问
    • @private 私有的, 外部不可以访问, 内部可以访问, 但是子类不能够访问;
    • 如果没有写提示, 则系统默认是 @protected, 受保护的!
      @interface Person : NSObject
      {
      @public
      NSString *_name;
      NSString *_sex;
      @protected
      NSString *_hobby;
      @private
      NSInteger _age;
      }
    • 对于@protected修饰的实例变量不能访问的, 设置两个方法分别为setter和getter方法 来赋值和读取

    1. setter 复制方法(又名: 设置器) 与getter取值方法(又名 访问器)
    在.h文件中声明 (设置器与访问器的放法声明)

    设置器

    • 以set开头
    • 2.因无返回值 用(void)
      -(void)setHobby:(NSString *)hobby;

    访问器

    • 带有一个方绘制无参数的方法
    • OC中只能带一个返回值(设置器可以同时赋值多个参数, 而访问器只能访问一个参数)
      假设为 Student 类
      - (NSString *)hobby;
    .m 中实现 (设置器与访问器的方法实现)
      - (void) setHobby:(NSString *)hoby
      {
      _hobby = hobby;
      }
      - (NSString *)hobby
      {
       return _hobby;
      };
    

    赋值可以同时赋多个值, 但每一个值都必须有一个相对的访问器,
    多个参数的赋值, 图通多个参数的初始化一样!
    - (void)setName:(NSString *)name
    sex:(NSString *)sex
    age:(NSInter)age;
    - (NSString *)name; // 对应的访问器
    - (NSString *)sex;
    - (NSInteger)age

    函数中 初始化为
    Student *stu1 = [[Student alloc] init]; 创建对象
    [stu1 setName:@"xiaoming" sex:@"number" number:20012]; 用setter方法赋值

    注: 实例变量的命名必须满足如 _name 一般以 下划线开头, 字母采取驼峰命名法: numberOfStudent 表示学生的数目, 每个单词的首字母大写!

    相关文章

      网友评论

        本文标题: OC中实例变量可见度 &&setter 与 g

        本文链接:https://www.haomeiwen.com/subject/fhkwfttx.html