第三章 面向对象
01面向对象概述
软件开发方法:面向过程和面向对象
面向过程:关注点在实现功能的步骤上。
PO:Procedure Oriented。
代表语言:C语言 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
例如开汽车:启动、踩离合、挂挡、松离合、踩油门、车走了。
再例如装修房子:做水电、刷墙、贴地砖、做柜子和家具、入住。
对于简单的流程是适合使用面向过程的方式进行的。复杂的流程不适合使用面向过程的开发方式。
面向对象:关注点在实现功能需要哪些对象的参与。
OO:Object Oriented 面向对象。包括OOA,OOD,OOP。OOA:Object Oriented Analysis 面向对象分析。OOD:Object Oriented Design 面向对象设计。OOP:Object Oriented Programming 面向对象编程。代表语言:Java、C#、Python等。
人类是以面向对象的方式去认知世界的。所以采用面向对象的思想更加容易处理复杂的问题。
面向对象就是分析出解决这个问题都需要哪些对象的参加,然后让对象与对象之间协作起来形成一个系统。
例如开汽车:汽车对象、司机对象。司机对象有一个驾驶的行为。司机对象驾驶汽车对象。
再例如装修房子:水电工对象,油漆工对象,瓦工对象,木工对象。每个对象都有自己的行为动作。最终完成装修。
面向对象开发方式耦合度低,扩展能力强。例如采用面向过程生产一台电脑,不会分CPU、内存和硬盘,它会按照电脑的工作流程一次成型。采用面向对象生产一台电脑,CPU是一个对象,内存条是一个对象,硬盘是一个对象,如果觉得硬盘容量小,后期是很容易更换的,这就是扩展性。
类与对象
类![](https://i-blog.csdnimg.cn/blog_migrate/32c85d9ae443df5f0b09d6256b71c8fc.png)
现实世界中,事物与事物之间具有共同特征,例如:刘德华和梁朝伟都有姓名、身份证号、身高等状态,都有吃、跑、跳等行为。将这些共同的状态和行为提取出来,形成了一个模板,称为类。
类实际上是人类大脑思考总结的一个模板,类是一个抽象的概念。
状态在程序中对应属性。属性通常用变量来表示。
行为在程序中对应方法。用方法来描述行为动作。
类 = 属性 + 方法。 对象 实际存在的个体。
对象
又称为实例(instance)。
通过类这个模板可以实例化n个对象。
(通过类可以创造多个对象)
例如通过“明星类”可以创造出“刘德华对象”和“梁朝伟对象”。
明星类中有一个属性姓名:String name;
“刘德华对象”和“梁朝伟对象”由于是通过明星类造出来的,所以这两个 都有name属性,但是值是不同的。因此这种属性被称为实例变量。