属性本质

•什么是属性

在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.在类方法中可以创建对象,可以访问该对象的实例变量和属性。

工厂方法

•  什么是工厂方法  生产(创建)对象的方法,叫工厂⽅法。 类中经常会出现⼀些工厂方法,其目的是为了方便创建对象。

•  无参的工厂方法   工厂方法的方法名一定以类名开头,注意去除了前缀和首字母要小写。 

•  有参的工厂方法 

 

最新文章

  1. iOS网络推送消息
  2. [译] libvirt 虚机的生命周期 (Libvirt Virtual Machine Lifecycle)
  3. 18、GPS技术
  4. Magic skills of vim from zhihu
  5. Linux network setting.
  6. css快捷方式
  7. 将DataTable转化为json对象
  8. Python简单小程序练习
  9. 奇怪的问题0xc000007b
  10. 关于SELECT LAST_INSERT_ID()的使用规则
  11. Asp.Net WebApi Swagger终极搭建
  12. 贝叶斯个性化排序(BPR)算法小结
  13. ElasticSearch6学习(1)-安装Elasticsearch
  14. BodeAbp服务端介绍
  15. 【NIO】之IO和NIO的区别
  16. 项目总结13:Jav文件压缩-InputStream转化为base64-Base64解码并生成图片
  17. Magic Powder - 2 (CF 670_D)
  18. 关于使用AzureCli登陆提示SSLError的错误解决方案
  19. 大数据系列之分布式计算批处理引擎MapReduce实践-排序
  20. django的数据库操作

热门文章

  1. 如何设置a标签的宽高,如何使a标签的文字垂直居中
  2. linux 搭建 nexus 私服及配置
  3. NHibernate系列文章八:NHibernate对象一级缓存
  4. notepad++ 正则表达式
  5. 在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决
  6. Egret Wing3 商城插件下载和使用
  7. rediscluster 集群操作(摘抄)
  8. delphi Inc函数和Dec函数的用法
  9. mysql高可用框架-MHA
  10. ComboBox的数据绑定