Objective 笔记C(第二天)
属性本质
•什么是属性
在OC中,属性提供了setter和getter方法,本质上属性就是方法,属性的值是由实例变量来保存的。
• 属性的本质(一般三个部分组成)
a.保存属性值的实例变量int _age;
b.setter和getter方法的声明
1.)setter方法:方法名+“set”+属性名并首子母大写 +“:”+和属性类型⼀样的参数,无返回值。
-(void)setAge:(int)newAge;
2.)getter⽅方法:方法名和属性名一样,没有参数,返回值类型和属性类型一样。
-(int)age;
c.setter方法和getter方法的实现
setter方法的实现主要用来给属性赋值的; 对象.属性 = 值==>会自动调用setter方法
getter方法的实现主要用来读取属性值的 ;变量=引用.属性;=>会自动调用getter方法
stu.age = 18;//给属性赋值 setter!
NSLog(@“age:%d",stu.age);//取属性值 getter
• 声明式属性
a.定义实例变量
b.声明式属性
1).h文件中int属性类型 age属性名 ,自动生成了setter和getter
@property int age;
2).将属性与实例变量关联在一起 .m⽂文件中
@synthesize age = _age;
c.属性的使用
引用.属性 = 值;=>会自动调用setter方法
变量 = 引用.属性;=>会自动调用getter方法
• IOS5中的属性 属性的声明简化了
a.省去了实例变量声明,会自动生成实例变量名为:_属性名的实例变量
b.声明式属性
1).h⽂文件中 int 属性类型 age 属性名,自动生成了setter和getter!
@property int age;
2).将属性与实例变量关联在⼀起 .m⽂件中!
@synthesize age = _age;
• IOS6中的属性 属性的声明简化了
a.省
b. 1)保留
2)省@synthesize age = _age;
c.保留
d.属性的演变过程,如果你不满意,可以⾃己重写。
初始化方法
• 什么是初始化方法 用来初始化对象的方法。
• 无参初始化方法 初始化⽅方法都是以“init”开头的,无参的初始化方法叫“init”。
• 有参初始化方法 有参的都以"initWith..."开头。
• id类型 初始化⽅方法的返回值为"id"类型。(void*)
• self关键字 self代表当前对象或当前类,self就是当前对象的引用。
(地址)初始化方法 • super关键字 super代表类的父类,[super init]是通知父类去做底层的初始化操作。
类方法
• 什么是类方法 只能通过类调用的方法叫类方法。”+"
• 类方法的定义、类方法与实例方法区别
a.实例方法与实例有关系,所以实例方法可以调用、读取实例中的实例变量或属性。
b.类方法与实例无关系,所以类方法不可以调用、读取实例中实例变量和属性。
c.在类方法中可以创建对象,可以访问该对象的实例变量和属性。
工厂方法
• 什么是工厂方法 生产(创建)对象的方法,叫工厂⽅法。 类中经常会出现⼀些工厂方法,其目的是为了方便创建对象。
• 无参的工厂方法 工厂方法的方法名一定以类名开头,注意去除了前缀和首字母要小写。
• 有参的工厂方法
Objective 笔记C(第二天)的更多相关文章
- EC笔记:第二部分:12、复制对象时勿忘其每一个成分
EC笔记:第二部分:12.复制对象时勿忘其每一个成分 1.场景 某些时候,我们不想使用编译器提供的默认拷贝函数(包括拷贝构造函数和赋值运算符),考虑以下类定义: 代码1: class Point{ p ...
- Stealth视频教程学习笔记(第二章)
Stealth视频教程学习笔记(第二章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...
- Jquery笔记之第二天
Jquery笔记之第二天 jQuery - 获取内容和属性 获得内容 - text().html() 以及 val() <script> $(document).ready(functio ...
- 【Git 使用笔记】第二部分:基本命令 和 单分支开发
git 基本命令 git add . git commit -am "请填写你NB的备注" git fetch --all git fetch -p //如果远程分支删除了,本地 ...
- 红帽学习笔记[RHCSA] 第二周
目录 红帽学习笔记[RHCSA]第二周 环境 第七课[网络配置相关] 在Vmware中添加网卡 将网卡添加到虚拟机上 关于网卡命名规则 配置网络 网络配置命令总结 更改hostname 关于SSH的一 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画 学习目标 熟悉蒙皮动画的术语: 学习网格层级变换 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS)
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS) 学习目标 回顾复数,以及 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION)
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION) 学习目标 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十章:阴影贴图
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十章:阴影贴图 本章介绍一种在游戏和应用中,模拟动态阴影的基本阴影 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数 学习目标: 理解矩阵和与它相关的运算: 理解矩阵的乘 ...
随机推荐
- JS 退出系统并跳转到登录界面的实现代码
js代码如下: <script language="javascript" type="text/javascript"> function log ...
- JAVA的包装类 【转】
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数 ...
- centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复
centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复 有时候我们会碰到这样的业务场景: 1.将大的数据库恢复到本地进行业务测试 ...
- A potentially dangerous Request.Form value was detected from the client
提交表单中包含特殊字符如<script>可能被认为是跨站攻击代码:解决方法很多,如stackoverflow上的web.config中加设置的方法不中肯[如原贴中Jamie M所说],主要 ...
- Linux搭建smtp服务器+laravel5.2发邮件配置
/** * 这里主要是想通过自己搭建smtp服务器,配置laravel5.2框架,实现邮箱发邮件功能, * 主要内容是搭建smtp服务器,laravel5.2发邮件顺手提一下 */ /** * 1.l ...
- JsonCpp的简单使用方法
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...
- window date type
Most string operations can use the same logic for Unicode and for Windows code pages. The only diffe ...
- android_开发环境配置
在学习 Android 之前,需要配置开发环境. 我用的是 eclipse ,简单说下 eclipse 的 Android 的环境配置. 如果没有JDK得先下载:http://www.oracle.c ...
- php protobuff 使用
http://hi.baidu.com/sing520/item/a6e98a3545fe1ef2e6bb7ad0 php 不支持uint32 不支持空结构 不支持package
- [2015hdu多校联赛补题]hdu5371 Hotaru's problem
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5371 题意:把一个数字串A翻过来(abc翻过来为cba)的操作为-A,我们称A-AA这样的串为N-se ...