OC开发之——面向对象概述(5)
一 常用术语
- 面向过程 Procedure Oriented
- 面向过程 Object Oriented,简称OO
- 面向对象编程 Object Oriented Programming,简称OOP
二 面向对象和面向过程的区别
2.1 面向过程(以用电脑听歌为例子——过程)
- (人)打开电脑
- (人)播放电脑中的歌曲
- (人)关闭电脑
2.2 面向对象(以用电脑听歌为例子——电脑)
- (电脑)开机
- (电脑)播放歌曲
- (电脑)关机
2.3 区别
- 面向过程关注的是解决问题需要哪些步骤;面向对象关注的是解决问题需要哪些对象
- 没有开发经验很难感受到它们的区别,两种思想都能达到解决问题的目的,但是解决思路不一样
三 现实生活中面向对象的例子
3.1 例子
- 想打电话\发短信——>找手机,不用分析电话要怎样才能拨通
- 去饭店吃饭——>找服务员,不用分析怎么到厨房炒菜
- 汽车坏了——>找汽车维修工,不用分析修车的步骤
3.2 结论
- 万物皆对象
四 类和对象的关系
面向对象中有2个非常重要的概念:类和对象
面向对象解决问题的时候必须有对象,那如何创建对象呢?
4.1 如何创建对象(创建汽车对象为例)
- 需要现有汽车的建造图纸,图纸上描述清楚汽车应该具备的属性和功能(行为)
- 属性:轮子数,时速
- 功能(行为):跑
- 然后再根据图纸上的描述生成汽车
- 每一辆汽车都是对象,都有自己具体的属性值,都是图纸的实例
- 图纸是抽象的,汽车是具体的。图纸是对汽车对象的高度概括
4.2 OC中的面向对象
- OC中的类相当于图纸,用来描述一类事物。也就是说,要想创建对象,必须先有类
- OC利用类来创建对象,对象是类的具体存在
- 因此,面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象
五 需要设计哪些类,如何设计类
5.1 类的设计(只关心3样东西)
- 事物名称(类名):人(Person)
- 属性:身高(height),年龄(age)
- 行为(功能):跑(run),打架(fight)
5.2 一般名词都是类
- 坦克发射了3颗炮弹轰掉了2架飞机
- 小明在公车上牵着一条叼着热狗的狗
5.3 拥有相同(或者类似)属性和行为的对象都可以抽象出一个类
- 愤怒的小鸟游戏界面
- 植物大战僵尸
- 新浪微博
5.4 类名,属性,行为的归纳
- 僵尸,炮弹,车,学生,书本
5.5 哪个对象最清楚这个行为,就把这个行为写到哪个对象中去
- 打开电脑(开机)这个行为,应该属于电脑的