码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-01-06 22:02:56      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

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; 

 

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

标签:

原文地址:http://www.cnblogs.com/blogofgsl/p/5107411.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!