面向过程与面向对象的区别
1、面向过程(POP)
- 概念:
pop(Process-oriented programming)的缩写,“面向过程”是一种是事件为中心的编程思想。
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向过程:主要关注点:实现的具体过程,因果关系。
- 特性:
模块化,流程化
- 优点:
性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源。对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低。
- 缺点:
采用面向过程的方式开发很难解决非常复杂的业务逻辑,另外面向过程的方式导致软件元素之间的“耦合度”非常高,只要其中一环出现问题,整个系统受到影响,导致最终的软件“扩展力”差,另外,由于没有独立体的概念,所以无法达到组件复用。
2、面向对象(OOP)
- 概念:
oop(Object Oriented Programming)的缩写面向对象:用线性的思维。与面向过程相辅相成。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
面向对象:主要关注点是:主要关注对象(独立体)能完成哪些功能。
- 特性:
封装,继承,多态
- 优点:
耦合度低,扩展力强,更容易解决现实世界当中更复杂的业务逻辑。
易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护。
- 缺点:
性能比面向过程低
3、主要语言分类:
面向过程的语言: C语言
面向对象的语言:C++, C#,Java,delphi
4、面向对象的理解:
面向对象的生命周期:
面向对象的方式开发一个软件,生命周期可分为三个阶段:
面向对象的分析:OOA
面向对象的设计:OOD
面向对象的编程:OOP
什么是类:
- 类的定义
类是现实世界当中是不存在的,是一个模版,是一个概念,是抽象出来的结果。
类代表了一类事物,具有同种属性的对象称为类,是个抽象的概念,
一个类主要描述的是:状态和动作。
-
语法结构:
[修饰符列表] class 类名{
属性:
方法:
}
什么是对象:
对象是实际存在的个体,是现实世界当中实际存在的任何事务,有自己独特的特性。
属性:
用来描述具体某个对象的特征。描述的是对象的状态信息,通常以变量的形式进行定义。
在类体中,方法体之外定义的变量称为“成员变量”
创建对象后才能访问的变量称为实例变量
对象又称为实例,实例变量又称为对象变量
方法:
描述的是对象的动作信息,为定义在类中的具特定功能的一段独立的小程序,方法也称为函数
方法运行后的返回结果的数据类型,
方法的特点:
定义方法可以将功能代码进行封装。
便于该功能进行复用。 方法只有被调用才会被执行。
方法的出现提高代码的复用性。
- 类与对象的关系
类–(实例化)–>对象
对象–(抽象)–>类
变量的生命周期
成员变量 | 局部变量 | 静态变量 | |
---|---|---|---|
定义位置 | 在类中,方法外 | 方法中,或者方法的形参 | 在类中,方法外 |
初始化值 | 有默认初始化值 | 无,先定义,赋值后才能使用 | 有默认初始化值 |
调用方式 | 对象调用 | — | 对象调用,类名调用 |
存储位置 | 堆中 | 栈中 | 方法区 |
生命周期 | 与对象共存亡 | 与方法共存亡 | 与类共存亡 |
别名 | 实例变量 | — | 类变量 |