一、面向对象和面向过程思想
OC是面向对象的,C是面向过程的。面向对象和面向过程只是解决问题的两种不同思想
1.面向对象和面向过程的区别
以用电脑听歌为例
a) 面向过程:
--- > 打开电脑
--- > 播放电脑中的歌曲
--- > 关闭电脑
b) 面向对象:
--- > 开机
--- > 播放歌曲
--- > 关机
a) 面向过程:
--- > 打开电脑
--- > 播放电脑中的歌曲
--- > 关闭电脑
b) 面向对象:
--- > 开机
--- > 播放歌曲
--- > 关机
区别分析:
面向过程关注的是解决问题需要哪些步骤;面向对象关注的是解决问题需要哪些对象
没有开发经验很难感受到它们的区别,两种思想都能达到解决问题的目的,但是解决思路不一样
面向过程关注的是解决问题需要哪些步骤;面向对象关注的是解决问题需要哪些对象
没有开发经验很难感受到它们的区别,两种思想都能达到解决问题的目的,但是解决思路不一样
2. 现实中面向对象的例子
--- > 想打电话\发短信 --> 找手机,不用分析电话要怎样才能拨通。
--- > 去饭店吃饭 --- > 找服务员,不用分析怎么到厨房炒菜。
--- > 汽车坏了 --- > 找汽车维修工,不用分析修车的步骤。
--- > 用业内一句有内涵的话说就是 “万物皆对象”。
--- > 想打电话\发短信 --> 找手机,不用分析电话要怎样才能拨通。
--- > 去饭店吃饭 --- > 找服务员,不用分析怎么到厨房炒菜。
--- > 汽车坏了 --- > 找汽车维修工,不用分析修车的步骤。
--- > 用业内一句有内涵的话说就是 “万物皆对象”。
3. 常用术语
面向过程 Procedure Oriented
面向对象 Object Oriented,简称OO
面向对象编程 Object Oriented Programming,简称OOP
面向过程 Procedure Oriented
面向对象 Object Oriented,简称OO
面向对象编程 Object Oriented Programming,简称OOP
二、类和对象的关系
面向对象中有2个非常重要的概念:类和对象如何创建对象
现实生活的例子:如何创造汽车对象?
1> 需要先有汽车的建造图纸,图纸上描述清楚汽车应该具备的属性和功能(行为)
属性:轮子数、时速
功能(行为):跑
2> 然后再根据图纸上的描述生成汽车
3> 每一辆汽车都是对象,都有自己具体的属性值,都是图纸的实例
4> 图纸是抽象的,房子是具体的。图纸是对房子对象的高度概括
OC中的面相对象
1> OC中的类相当于图纸,用来描述一类事物。也就是说,要想创建对象,必须先有类
2> OC利用类来创建对象,对象是类的具体存在
因此,面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象
需要设计哪些类,如何设计类
1> 类的设计,只关心3样东西:
事物名称(类名):人(Person)
属性:身高(height)、年龄(age)
行为(功能):跑(run)、打架(fight)
> 一般名词都是类
坦克发射3颗炮弹轰掉了2架飞机
小明在公车上牵着一条叼着热狗的狗
3> 拥有相同(或者类似)属性和行为的对象都可以抽像出一个类
4> 哪个对象最清楚这个行为,就把这个行为写到哪个对象中去。打开电脑(开机)这个行为应该是属于电脑的
类的设计:
1> 类名
* 类名的第一个字母必须是大写
* 不能有下划线
* 多个英文单词,用驼峰标识
2> 属性
3> 行为(功能)
例如,
* 类名的第一个字母必须是大写
* 不能有下划线
* 多个英文单词,用驼峰标识
2> 属性
3> 行为(功能)
例如,
1.植物大战僵尸的僵尸
* 类名:Zoombie
* 属性:life、speed、gongjili
* 行为:walk、bite、die2.雷电的飞机
* 类名:Plane
* 属性:life、gongjili、speed、bombCount
* 行为:fly、bomb、shoot、die3.电脑
* 类名:Computer
* 属性:band、expireDate
* 行为:open、close