理解面向过程和面向对象的程序设计方法

一、结构化程序设计
1,概念:
传统的结构化程序设计思想的核心是功能的分解。将问题分解为多个功能模块,根据模块功能来设计用于存储数据的数据结构,最后编写了过程(函数)对数据进行操作实现模块的功能。程序由一系列处理数据的过程(函数)组成。这种设计方法的重点是面向过程的,也称为面向过程的程序设计方法。
在这里插入图片描述
2,特点:
传统的结构化程序设计思想可归结为:

“程序=数据结构+算法”

数据结构用于量化描述要解决的问题。

算法研究如何以更快、更有效的方式来组织求解问题的具体过程,将程序定义为处理数据的一系列过程。面向过程的程序设计把数据结构和过程看作两个实体,以过程为中心,特点是数据和程序分离,即数据和数据处理分离。

结构化程序设计的基本思想是采用自顶向下,并逐步细化的设计方法。算法实现采用顺序、选择、循环三种控制结构。
3,实例:
在这里插入图片描述
4,优缺点:
优点:
通过自顶向下,并逐步细化的设计方法,为处理复杂问题提供有力手段。性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素
缺点:
(1)模块间调用关系复杂,增加了模块间的依赖性和修改调试程序的难度,难以适应大型软件设计
(2)数据结构和过程分离,一旦数据结构发生改变,必须修改与之相关的所有模块对应的过程或函数

二、面向对象的程序设计
1,概念
在面向对象程序设计中,重点是将要被操作的数据,而不是实现操作的过程。数据是软件分解的基础,而不是功能。重要的是不把数据和对数据将要执行的操作视为两个单独的实体。而是把它们当作一个完整的实体(对象)。外部程序和过程程无法直接访问数据本身,从而使数据更安全。同类对象还可抽象出共性,形成类。程序有类的定义和类的使用构成,主程序中定义各个对象并规定他们之间传递消息的先后顺序;程序中的操作都是通过向对象发送消息来实现。对象接受消息后,启动此类对象有关的函数(方法)来完成相应的操作。

比如:每个银行账户是一个对象,包括账户数据(账户号、名称、余额等)和对数据的操作:存款、取款、转账(通过函数实现),所有的银行账户具有相同的数据属性和操作,可抽象出共性,形成银行账户类。每个银行帐户都是银行帐户类的一个实例。在面向对象中,每个银行帐户都被称为银行帐户类的对象。
对象与类的概念及关系:
在这里插入图片描述
在这里插入图片描述
对象间的交互:
在这里插入图片描述
2,特点
(1)封装性
在这里插入图片描述
对象是一个封装体,在其中封装了该对象的属性和操作。通过限制对属性和操作的访问权限,可以将属性“隐藏”在对象内部,对外部提供某些接口(公有),在对象之外只能通过接口对对象进行操作。
(2)继承与派生性
在这里插入图片描述
(3)多态性
在这里插入图片描述
在这里插入图片描述
多态性是指同一个消息被不同对象接收时,产生不同的结果,即同一接口,不同方法。分为编译时多态(函数、运算符重载实现)和运行时多态(继承和虚函数实现)
3,面向对象的软件开发方法:
在这里插入图片描述
4,优缺点:
优点:
(1)易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
(2)可直接模拟现实世界。
缺点:
性能比面向过程低

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值