iOS 工作之余小总结(二)类的高度总结----封装,继承,派生,重写,多态,协议,分类,扩展,组合,聚合。

  在iOS的学习过程中,类的概念尤为重要,类与类之间的关系也是多而复杂,以下是我个人的理解总结,如有疑问,可以评论讨论。

1.类的三大特性:封装,继承,多态。

1)封装

  我们写的程序,要像一个家一样,有卧室,厨房,卫生间等空间,每个空间都有各自的作用。而对于程序也是一样的,我们把相同的代码,相同的功能提取出来。这就是一个简单的封装,我总结了一些常用的小封装,比如:一些描述相同事物的变量可以封成结构体,一些有关联的常量可以封成枚举,一些独立的方法可以封装成一个类,有很多类有相同的方法可以封成一个父类等等... 。

  那么,封装是为了什么呢?上班过程中封不封装有没有什么关系呢?

  首先,大部分的公司说实话你写的代码不封装也没关系,毕竟公司要的是结果。其次,在上班的过程中封装是浪费时间的。

  封装的原因有很多,而且很关键,我列举几点:

  1、提升代码的可读性。封装完的代码看着很清楚,每一个地方做不同的事儿。

  2、耦合性降低。封装完的代码,每一块代码都有自己的作用,在修改的时候很方便而且改动也少。

  3、提升自己的能力。封装的过程也算是重构的过程,在重构的时候是对自己逻辑和设计的提升,对自己的代码能力可以得到很好的提升。

  封装的好处还有很多,在这里就不再总结了。继续总结类

2)继承(类与类)

  继承是类于类之间的关系,A类继承了B类,那么B类就是父类,A类就是子类。子类可以继承父类的所有方法和属性。

3)派生

  派生是继承中的关系,子类在继承父类后,如果父类中的方法不满足需求,则需要子类派生,派生是指子类在自己类中添加自己需要的属性和方法。

4)重写

  重写也是继承中的关系,子类可以派生新的方法,当然,也可以写和父类相同方法名的方法,这就是重写。在重写的之后。父类的方法会被隐藏,如果想调用父类的方法

可以用super指针。

5)多态(类与类)

  多态在计算机中的解释,是一个接口,多种实现。在我们iOS当中,就是父类指针可以指向子类,从而可以调用子类重写的方法,一般有两种使用形式

  1、方法的参数。

  2、方法的返回值。

6)协议(类与类)

  我对协议的理解比较独特,如果有错,可以提出宝贵意见。我理解的协议,也是包括在多态中。协议是声明的方法,属性,有类可以采纳这个协议,谁采纳这个协议,就要实现协议定的方法,协议方法有两种。第一种是@required 关键字修饰的方法,意思是采纳的类必须要实现的方法。第二种是@optional,意思是采纳的类是不是先都可以。协议可以继承,并且可以多继承。在实际中,可以把协议理解为抽象类,即有很多类的方法名字一样,可以用协议去把这个方法提出来,然后让这些类采纳这个协议。然后再根据不同的对象,调用相同的方法名,实现不同的功能。协议是1对多的关系

7)分类(类与类)

  分类是可以给一个类添加方法,其强大的地方在于,可以向系统类添加方法,你愿意的话,可以向NSObject类中添加方法。还有一个作用是可以屏蔽你加入的第三方库不需要的方法,可以添加与不用的方法同名的方法,这样可以将之前的方法隐藏,以达到屏蔽的作用,分类只能添加方法,分类添加方法的类叫主类,分类是一对一的关系。

8)扩展 (类与类)

  扩展也是只能成声明方法,属性。不能实现。扩展有两种。一是添加扩展文件。(这个方法用的少)二是在主类的interface中声明方法和属性。值得注意的是,声明的所有东西访问权限都是私有的。扩展也是1对1的类关系。

9)组合(类与类)

  这个关系用的比较少了,四个字总结就是同生共死。即主类和部分类同时开辟空间,同时销毁。

10)聚合 (类与类)

  四个字总结就是有关系,但是不是同生共死的关系。



先总结到这里,如果有其他的类关系想知道,可以提问留言。我也会总结然后回答。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值