关于setter 和 getter方法的一些总结(初级)

1.最基础的set 和 get

准备工作

Person.h

@interface Person : NSObject

{

       NSString *_hobby; // ObjC建议成员变量带"_"

    @protected // 受保护的 本类以及子类可以访问

    NSString *_name;

    NSString *_gender;

    @private // 私有的 只有本类可以访问

    NSInteger _age;

    NSInteger _weight;

}

#pragma mark --- 声明setter getter方法 ---

// setter

- (void)setName:(NSString *)name;// name将形参传给成员变量

// getter

- (NSString *)name; //也可以写成 - (NSString *)getName;

// 对于实例变量,只有写了setter和getter方法,才能对它赋值,取值(KVC,runtime 除外) ,

person.m

@implementation Person

// setter (设置器) 赋值

- (void)setName:(NSString *)name{

    _name = name;

}

 

参数:(NSString *)name,是传过来的一个参数,可以是per.name = @"nihao";中的@"nihao",也可以是[per setName:@"nihao"];(消息发送机制)中的@"nihao"

_name = name; setter方法的本质就是将传过来的值赋给实例变量,只是赋值

// getter (访问器) 取值

- (NSString *)name{

    return _name;

}

 return _name; getter方法的本质就是取值(访问实例变量)的时候,我们的per.name 就是 _name;就是上面setter传过来的值,可以取值了.

总结:在一般的setter,getter方法中,setter是赋值操作,只有写了setter方法,才能写出赋值,per.name = @"**";

      getter是取值方法,我们想知道per.name是什么,就要写getter方法.

      如果值写了setter未写getter,就会只能赋值,不能取值.即无法打印per.name的值

       如果值写了getter未写setter,就会只能取值,不能赋值.此时如果不用其他方法赋值,那么per.name = nil; 

 

转载于:https://www.cnblogs.com/blogofgsl/p/5107411.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值