属性本质

•什么是属性

在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(第二天)的更多相关文章

  1. EC笔记:第二部分:12、复制对象时勿忘其每一个成分

    EC笔记:第二部分:12.复制对象时勿忘其每一个成分 1.场景 某些时候,我们不想使用编译器提供的默认拷贝函数(包括拷贝构造函数和赋值运算符),考虑以下类定义: 代码1: class Point{ p ...

  2. Stealth视频教程学习笔记(第二章)

    Stealth视频教程学习笔记(第二章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...

  3. Jquery笔记之第二天

    Jquery笔记之第二天 jQuery - 获取内容和属性 获得内容 - text().html() 以及 val() <script> $(document).ready(functio ...

  4. 【Git 使用笔记】第二部分:基本命令 和 单分支开发

    git 基本命令 git add . git commit -am "请填写你NB的备注" git fetch --all git fetch -p  //如果远程分支删除了,本地 ...

  5. 红帽学习笔记[RHCSA] 第二周

    目录 红帽学习笔记[RHCSA]第二周 环境 第七课[网络配置相关] 在Vmware中添加网卡 将网卡添加到虚拟机上 关于网卡命名规则 配置网络 网络配置命令总结 更改hostname 关于SSH的一 ...

  6. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画 学习目标 熟悉蒙皮动画的术语: 学习网格层级变换 ...

  7. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS) 学习目标 回顾复数,以及 ...

  8. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION) 学习目标 ...

  9. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十章:阴影贴图

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十章:阴影贴图 本章介绍一种在游戏和应用中,模拟动态阴影的基本阴影 ...

  10. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数 学习目标: 理解矩阵和与它相关的运算: 理解矩阵的乘 ...

随机推荐

  1. 【转】关于LWF——线性工作流

    1.什么是LWF? LWF全称Linear Workflow,中文翻译为线性工作流.“工作流”在这里可以当作工作流程来理解.LWF就是一种通过调整图像Gamma值,来使得图像得到线性化显示的技术流程. ...

  2. Java介绍(重要特点)

    Java语言平台版本 JavaSE标准版本,是JavaME 和Java EE的基础,能够开放基本桌面程序. JavaME 一句话,安卓开发. JavaEE 一句话,网页开发. Java重要特性(跨平台 ...

  3. 银行ATM机工作流程模拟编程

    [编程内容] 编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程.依据帐户信息:姓名.帐号.密码.余额,完成ATM机功能:登录.显示余额.取款.修改密码. ...

  4. MFC中控制COMBOBOX控件的下拉框高度

    这是使用Visual Stiduo的小技巧哦.今天上网找来的.在界面设计面板上,点击ComboBox的下拉箭头,会另外出现一个虚边框.可以调整其大小.这个就是实现运行的时候下拉边框的默认值啦.

  5. 【DIOCP知识库】连接上下文TIocpClientContext

    来自弦子介绍 [概述] 该类管理远程连接,每一个远程连接会对应一个该类的实例,开发时可以通过继承该类,扩展属性,可以存储更多的连接信息,可以重写OnRecvBuffer方法进行数据逻辑的处理 [字段/ ...

  6. Asp.net Session 保存到MySql中

    一 网站项目引入"mysql.web.dll" 二 web.config配置中添加mysql数据库连接字符串 <connectionStrings> <remov ...

  7. Xml文件操作的其中一个使用方法:

    XmlNodeList students = doc.DocumentElement.ChildNodes;//Student节点集合 foreach (XmlNode stu in students ...

  8. 开源PLM软件Aras详解三 服务端简易开发

    废话少说,直接进入主题, 以CAD为例: 先找到CAD对象类:具体操作见下图 双击打开,找到服务端事件:见下图 点击新建对象,点击添加,新建Method 编写Method,语言分为前端和后端,前端支持 ...

  9. Python全栈---5.1---装饰器

    一.装饰器 执行outer函数,将index作为参数传递, 将outer函数的返回值,重新赋值给index 装饰器可以在函数执行前和执行后执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之 ...

  10. CK13物料价格评估的数据ALV显示

    *&---------------------------------------------------------------------* *& Report  ZPP023 * ...