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 哪个对象最清楚这个行为,就把这个行为写到哪个对象中去

  • 打开电脑(开机)这个行为,应该属于电脑的