【OC学习-8】存取器方法?getter和setter?事实上就是赋值和返回值的两种函数
我们在声明类的时候,有实例变量+方法(函数),这些实例变量假设默认的话都是protected类型,一般无法直接訪问。更别提赋值和调用了,所以就产生了两种函数,getter函数就是可以返回实例变量的值,setter函数就是可以设置实例变量的值。(当然假设你把实例变量改成public的话可以直接调用,但不安全)
存取器方法(函数)就是:存——赋值setter函数。取——返回值getter函数。
(1)先在类的.h文件中面声明这个函数(方法)。一般都有默认的格式(例如以下):返回值函数的函数名字一般都和变量同样,如name,sid,age;设置值函数的函数名字一般都是set+变量名(首字母大写)。如setName。setAge,setSid。
//在ASStudent.h里面声明的函数(方法)
-(void)setName:(NSString *)aName;
-(void)setAge:(int)aAge;
-(void)setSid:(NSString *)aSid;
-(NSString*)name;
-(NSString *)sid;
-(int)age;
(2)在类的.m文件中面设置函数(方法)详细内容。这个非常easy。由于这个函数(方法)实现的功能非常easy(返回值或者设置值的功能)
//设置值就是把形參值传递给实例变量值
-(void)setName:(NSString *)aName{
name=aName;
} -(void)setAge:(int)aAge{
age=aAge;
} -(void)setSid:(NSString *)aSid;{
sid=aSid;
} //返回值就是直接return这个实例变量本身
-(NSString*)name{
return name;
} -(NSString *)sid{
return sid;
} -(int)age{
return age;
}
(3)在main.m里面使用时候能够用函数形式也能够用点形式
//两者同样。以下那个点函数在赋值时,事实上系统还是会调用上面那个函数
[zhang setName:@"tom"];
zhang.name=@"tom"; //两者同样,以下那个点函数在返回值时。事实上系统还会调用上面那个函数
NSLog(@"%@,%d",[zhang name],[zhang age]);
NSLog(@"%@,%d",zhang.name,zhang.age);
所以,至于能够使用点函数来书写,事实上是为了方便程序猿,由于原理。着也是OC近期版本号改进的功能。
【OC学习-8】存取器方法?getter和setter?事实上就是赋值和返回值的两种函数的更多相关文章
- 4--OC --合成存取器方法
1. 从OC 2.0开始就已经可以自动生成设置函数方法和获取函数方法(统称为存取器方法). 什么是 @property 和 @synthesize ? @property 和 @synthesize ...
- 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解
第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一. 引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...
- JMeter接口测试-提取动态列表最后一个值的两种方法
前言 在用JMeter做接口测试时,我们经常会遇到,一个接口返回一个json串,在这个json串中,某个节点的值是一个列表,而且这个列表的长度是动态变化的.今天我们来学习两种提取动态列表最后一个值的两 ...
- 选中没有选中的复选框,匹配含有某个字符串的正则,json取值的两种方法,把变量定义在外面跟里面的区别
一.筛选没有选中的复选框:not("input:checked") 二.匹配有VARCHAR的字符串:".*VARCHAR.*?" 三.json取值的两种方法 ...
- JavaScript监听手机物理返回键的两种解决方法
JavaScript没有监听物理返回键的API,所以只能使用 popstate 事件监听. 有两个解决办法: 1.返回到指定的页面 pushHistory(); window.addEventList ...
- Activity的跳转及返回值 的四种方法
Activity生命周期 从创建到销毁的生命周期: onCreate()→onStart()→onResume()→onPouse()→onStop()→onDestroy() 从起动到后台再到前台: ...
- 《JS权威指南学习总结--6.6属性getter和setter》
内容要点: 一.对象属性 对象属性是由名字.值和一组特性构成的.在ES5中,属性值可以用一个或两个方法替代,这两个方法就是getter和setter.由getter和setter定义的属性称做 ...
- 通过编写串口助手工具学习MFC过程——(十)UpdateData()用法和编辑框的赋值、取值
通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...
- Java多线程初学者指南(8):从线程返回数据的两种方法
从线程中返回数据和向线程传递数据类似.也可以通过类成员以及回调函数来返回数据.但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪. 一.通过类变量和方法返回数据 使用这种方法返回数 ...
随机推荐
- JDK工具(零)--简要介绍JDK1.6自带的42个工具
Java的开发人员肯定都知道JDK的bin目录中有"java.exe"和"javac.exe"这两个命令行工具, 但并非所有的Java程序员都了解过JDK的bi ...
- 二叉树、B树、B+树、B*树、LSM树
HBase 对于数据产品,底层存储架构直接决定了数据库的特性和使用场景.RDBMS(关系型数据库)使用 B树 及 B+树 作为数据存储结构. HBase 使用 LSM树. . 二叉树 ...
- poj2031-Building a Space Station(最小生成树,kruskal,prime)
Building a Space Station Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5874 Accepte ...
- atitit. java queue 队列体系and自己定义基于数据库的队列总结o7t
atitit. java queue 队列体系and自己定义基于数据库的队列总结o7t 1. 堵塞队列和非堵塞队列 1 2. java.util.Queue接口. 1 3. ConcurrentLin ...
- 3.菜鸟教你一步一步开发 web service 之 axis 服务端创建
转自:https://blog.csdn.net/shfqbluestone/article/details/37610601 第一步,新建一个工程,如图: 选 Java 写一个工程名,选择好工程路径 ...
- Retrofit请求数据对错误以及网络异常的处理
http://blog.csdn.net/jdsjlzx/article/details/51566683
- android学习笔记五。2、其他组件
一.ContentProvider内容提供者.是是android中一个应用向第三方共享数据的方式,android中的联系人,sms(短信记录)等都是通过这一方式来向外提供的 1.使用: 在应用中使用C ...
- Restricted Boltzmann Machines
转自:http://deeplearning.net/tutorial/rbm.html http://blog.csdn.net/mytestmy/article/details/9150213 能 ...
- 天意——thinkphp方法名大小写问题
今天星期六,晚一小时上班.早起后背了会单词就骑自行车上班了.我是个有豪车梦的男生,每看到什么保时捷啊,雷克萨斯啊开过都会呆呆的看一会.现在虽然我买不上车,但是我可以靠我自己先买一台帅气的大摩托啊哈哈. ...
- USB摄像头驱动框架分析(五)
一.USB摄像头驱动框架如下所示:1.构造一个usb_driver2.设置 probe: 2.1. 分配video_device:video_device_alloc ...