首页 > 其他分享 >面向对象和面向过程

面向对象和面向过程

时间:2024-08-13 17:18:00浏览次数:10  
标签:封装 对象 面向对象 面向 6.1 过程

6.1 面向对象和面向过程


目录

6.1.1 面向对象概念

1.1 什么事面向对象

面向对象(Object Oriented)是一种思想,90年代以后软件开发的主流思想。由于现实社会是由各种各样的事物所组成的,而我们编程又是在模拟现实社会,那么在程序中也要用一些东西来表示现实社会中的事物,这些东西就是程序中的对象。我们在程序中使用这些对象,对其特征和行为进行操作进行编程,这就是面向对象编程。在使用面向对象编程思想之前,我们通常用面向过程的思想编程,先分析出解决问题的步骤,然后按照步骤一步一步实现。

1.2 理解面向对象

面向对象是相对面向过程而言

  • 面向过程
    • 强调的是功能行为
  • 面向对象
    • 将功能封装进对象,强调具备了功能的对象。
1.3 面向对象的特点
  • 是一种符合人们思考习惯的思想
  • 可以将复杂的事情简单化
  • 将程序员从执行者转换成了指挥者
  • 完成需求时:
    • 先要去找具有所需的功能的对象来用。
    • 如果该对象不存在,那么创建一个具有所需功能的对象。
    • 这样简化开发并提高复用。
1.4 面向对象开发设计特征
  • 开发的过程:其实就是不断的创建对象,使用对象, 指挥对象做事情。
  • 设计的过程:其实就是在管理和维护对象之间的关系。
  • 面向对象的特征:
    • 封装(encapsulation)
    • 继承(inheritance)
    • 多态(polymorphism)
  • 面向对象编程的优点
    • 提高代码复用性。
    • 使用者无需关心具体细节。
    • 转变程序员角色,更加符合人的思维习惯。

6.1.2 面向对象和面向过程的区别和联系

2.1 区别

  1. 抽象程度不同
    面向过程:以过程为中心,注重解决问题的步骤和流程,关注的是问题的解决过程。
    面向对象:以对象为中心,注重解决问题的对象和对象之间的交互,关注的是问题的解决方案。
  2. 编程思想不同
    面向过程:程序由一系列的函数或过程组成,通过函数的调用来实现功能。
    面向对象:程序由一系列的对象组成,通过对象的交互来实现功能。
  3. 数据和方法的封装性不同
    面向过程:数据和方法是分离的,数据通过参数传递给函数,函数通过返回值返回结果。
    面向对象:数据和方法是封装在对象中的,对象通过调用方法来操作数据。
  4. 继承和多态性的支持不同
    面向过程:不支持继承和多态性,只能通过复制代码来复用。
    面向对象:支持继承和多态性,可以通过继承和接口实现代码的复用和扩展。
2.2 联系

面向对象是在面向过程的基础上发展而来的,它们有着紧密的联系。

  1. 面向对象可以看作是面向过程的一种扩展
    面向对象将数据和方法封装在对象中,通过对象的交互来解决问题,实现了更高级别的抽象和封装。可以说,面向对象是面向过程的一种扩展和优化。

  2. 面向对象可以使用面向过程的思想进行实现
    面向对象的编程语言(如Java)底层仍然是通过面向过程的方式来实现的。面向对象的概念和特性是建立在面向过程的基础上的,因此可以使用面向过程的思想来理解和实现面向对象的代码。

标签:封装,对象,面向对象,面向,6.1,过程
From: https://www.cnblogs.com/hweiling/p/18355625

相关文章

  • Windows超高危漏洞“狂躁许可”实际利用全过程曝光!(附POC)
     自"永恒之蓝"之后,Windows再次暴露出一个影响全版本且高度稳定可利用的预认证远程代码执行(RCE)漏洞。本文将跟随漏洞披露者的第一视角,详细探讨漏洞的技术原理、利用方法,并提供相关的概念验证伪代码。文章同时附有演示视频,展示了该漏洞在最新的WindowsServer2025上的实......
  • 记一次NoClassDeffoundEror问题解决过程
    背景:在对某台计算服务器进行代码修改后,发现es查询报错,抛出异常如下: 思路: 1.jar包冲突   查询了对应jar的pom文件,发现只有一个es的版本jar包,不存在冲突,百思不得其解。2.本地环境问题   清理idea的缓存,发行问题仍然存在最后翻阅资料,打了断点追踪异常抛出的地方,......
  • VS Code Server的离线安装过程
    1.服务器上vscode-server安装取决于你本地使用的vscode版本,版本用commit_id来区别。首先打开vscode,点击帮助-关于(Help->about可以查看),如下这个commitid也就是你本地Vscode版本的commitid:2.vscode-server的下载链接如下:https://update.code.visualstud......
  • 【C++面向对象】泛型编程(模板) 新手小白都能懂!
    目录泛型编程是什么?模板和泛型编程的关系?函数模板定义调用类模板定义调用总结/小注泛型编程是什么?顾名思义,“泛型”即“广泛的类型”,即不拘泥于一种特定类型的编程方法。在泛型编程时,我们通常使用一个或多个类型占位符来表示一种或多种类型,这些类型对于模板而言......
  • 用layui +echarts 曲线图实现子页面向父页面传值,点击曲线图表上的点后删除该点,并在删
    下面是一个完整的示例,展示了如何使用layui和ECharts实现以下功能:子页面向父页面传值。点击曲线图上的点后删除该点。删除后自动刷新layui表格列表。根据子页面传值和起止时间刷新父页面。文件结构假设你有两个文件:父页面(index.html)子页面(child.html)1.子页面......
  • 详解Qt项目结构与Qt构建过程
    项目文件夹的组成(创建一个名为untitled4的Qt+opencv应用程序):untitled4.pro:是构建工程项目时Qt处理的第一个文件,该文件称为QT项目文件,一个名为“qmake”的内部Qt程序负责处理该文件。untitled4.pro.user:保存你的个人设置,不会影响项目的实质构建项目,仅包含用户个性化配置......
  • 建站过程中很容易让人忽视的三大细节
    一个网站的建设是需要专业性、技术性很强的人才能够做的,并不是敲打一些代码、上传一些图片就可以的了,如果在建设网站的时候设计不当,很有可能不会让搜索引擎收录,所以用户也就不可能通过检索来访问网站了。在网站建设中大家都很忽视一些关键的细节,比如:关键词的分布,还有网站的链接等......
  • 存储过程(bp_sys_DatabaseBackup )
    bp_sys_DatabaseBackupUSE[database_name]GO/******Object:StoredProcedure[dbo].[bp_sys_DatabaseBackup]ScriptDate:08/12/202416:21:38******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--execbp_sys_DatabaseBackup'E:\DATABACKUP&#......
  • Linux C++ 开发3 - 你写的Hello world经过哪些过程才被计算机理解和执行?
    1.C/C++的编译过程1.1.预处理1.2.编译1.3.汇编1.3.1.汇编过程1.3.2.目标文件1.4.链接2.编译过程示例2.1.源代码2.2.逐步编译程序2.2.1.编译指令2.2.2.链接报错问题2.3.单步编译3.gcc/g++与gpp、as、ld的关系3.1.关系图3.2.示例演示......
  • 大模型备案过程讲解
    以下是一般情况下大模型备案的大致过程讲解(不同地区和具体要求可能存在差异和细化等情况):一、备案前准备了解法规和政策熟悉《生成式人工智能服务管理暂行办法》《互联网信息服务深度合成管理规定》等相关法律法规对大模型备案的要求和规定。明确备案的主管部门(通常是网信......