黑马程序员技术交流社区
标题: 博文共享01:OC中set get方法的区别 [打印本页]
作者: 微雨独行 时间: 2014-9-28 10:24
标题: 博文共享01:OC中set get方法的区别
本帖最后由 微雨独行 于 2014-9-28 10:31 编辑
拿来献丑,请各路大神给予补充意见,不胜感激
1、set方法与get方法简介
(1) @public作用域下的成员变量可以被外界任意赋值,往往会产生脏数据(不合理的数据),比如:人的年龄不可能为负。
(2) 我们可以使用set方法和get方法来管理成员的访问(类似安检,过滤掉不合理的对象)。
(3) 3种操作: a. 只写(set) b. 只读(get) c.可读写(get set)。
(4) get set 方法只用来读写成员变量值,不能对其他方法进行操作。
(5) get set 属于对象方法。
2、set方法
(1) 作用:给外界提供一个公共的方法用来访问或设置成员变量值,可以在方法里面过滤掉一些不合理的值。
(2) set 方法相当于 写操作
(3) 命名规范:
1> set方法以减号 - 开头(对象方法);
2> 方法名必须以set开头,后面就是成员变量去掉下划线的部分,成员变量的首字母必须大写;
例如: - (void)setAge: (int)age; 方法名是 setAge:
3> 返回值一定是void;
4> 一定要接收一个参数,而且参数类型跟成员变量类型一致;
5> 形参的名称不能跟成员变量名一样。
例如: 成员变量 int _age; 成员变量名称是 _age
对应的set方法:- (void)setAge: (int)age; 形参名称是 age
二者不一样,此处再次体会下划线的好处。
3、get方法
(1) 作用:返回对象内部的成员变量
(2) get 方法相当于 读操作
(3) 命名规范:
1> get 方法以减号 - 开头;
2> 方法名跟形参名称一样,即成员变量名称去掉下划线后剩下的部分
例如: 成员变量 int _age; 成员变量名称是 _age
- (void)setAge: (int)age; 形参名称是 age
- (int)age; get方法名称是 age
3> 肯定有返回值,返回值类型肯定与成员变量类型一致
4> 不需要接收任何参数
例如: - (int)age;
4、成员变量命名规范
1> 成员变量都以下划线_开头
2> 可以跟get方法的名称区分开 _age(成员变量名) age(get方法名)
3> 可以跟其他局部变量区分开,一看到下划线开头的变量,肯定是成员变量
成员变量名称以下划线开头的好处:
1>可以防止与set方法的形参名称以及get方法的方法名重名。
2>可以更加方便地找到想找的成员变量。
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |