属性本质

•什么是属性

在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. ios异常(crash)输出

    最近突然想起友盟的sdk附带的一个功能:将闪退异常情况上报服务器,(stackflow,github)找了一些资料,自己写了一个demo,想起来好久没有写过blog了,顺便分享. 其实不止是ios,a ...

  2. MySQL定时执行脚本(计划任务)命令实例

    在mysql中我们可以直接进行一些参数设置让它成定时为我们执行一些任务了,这个虽然可以使用windows或者linux中的计划任务实现,但是mysql本身也能完成 查看event是否开启 复制代码 代 ...

  3. Android开发--布局二

    1.Andrid:控件布局(表格布局)TableLayout 有多少个TableRow对象就有多少行, 列数等于最多子控件的TableRow的列数 直接在TableLayout加控件,控件会占据一行 ...

  4. Git 版本控制 在 WIN 下的一些使用方法

    这里记录一些 Git 在 Windows 操作系统下使用方法: 安装完毕后,先让Git 记录自己的名字: $ git config --global user.name "Your Name ...

  5. Java遍历JSON

    JSONObject jsonObject = new JSONObject(s);然后用Iterator迭代器遍历取值,建议用反射机制解析到封装好的对象中 JSONObject jsonObject ...

  6. window date type

    Most string operations can use the same logic for Unicode and for Windows code pages. The only diffe ...

  7. hibernate学习(设计一对一 关系 映射)

    //主表 package org.crazy.app.domain; import javax.persistence.*; @Entity @Table(name="person_inf& ...

  8. Python_sklearn机器学习库学习笔记(一)_Feature Extraction and Preprocessing(特征提取与预处理)

    # Extracting features from categorical variables #Extracting features from categorical variables 独热编 ...

  9. 一步一步写平衡二叉树(AVL树)

    平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树.1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵 ...

  10. Android 环境通过国内映像快速搭建

    Android 环境通过国内映像快速搭建 转眼大半年没有写android程序了,回顾从环境搭建开始. 因为google受国内限制,因此下载android的SDK相当慢,因此寻找国内的镜像进行搭建. 首 ...