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

  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 与 getter)