什么是面向对象以及和面向过程的区别

news2024/11/27 3:46:14

image.png

概念

面向对象是一种编程范式,它将现实世界中的事物抽象为对象,并通过对象之间的交互来实现程序的设计和开发。在面向对象编程中,对象是程序的基本单元,具有状态(属性)和行为(方法)。通过封装、继承和多态等概念,面向对象编程提供了一种结构化的方法来组织和管理代码。

举例

现在我们来举一个将大象放进冰箱的例子来说明面向对象的概念:

在面向对象的世界里,我们可以将大象和冰箱都抽象为对象,并定义它们的属性和方法。假设我们有一个名为"Elephant"的类表示大象,它具有属性(例如体重、颜色等)和方法(例如走、吃等)。同样地,我们也有一个名为"Refrigerator"的类表示冰箱,它具有属性(例如容量、温度等)和方法(例如打开、关闭等)。

首先,我们需要创建一个大象的实例,即一个具体的大象对象。我们可以实例化一个名为"myElephant"的对象,该对象基于"Elephant"类,并设置它的属性,比如体重。

接下来,我们需要创建一个冰箱的实例,即一个具体的冰箱对象。我们可以实例化一个名为"myRefrigerator"的对象,该对象基于"Refrigerator"类,并设置它的属性,比如容量和温度。

最后,我们可以调用大象对象的方法,比如让它走向冰箱。在大象对象的方法中,我们可以检查冰箱对象的状态,比如是否打开,是否有足够的空间来容纳大象。如果冰箱是打开的并且有足够的空间,大象对象就可以进入冰箱。

和面向过程的区别

面向过程是一种编程范式,它将程序设计看作是一系列按照特定顺序执行的步骤或函数调用。在面向过程编程中,程序的重点是算法和数据的处理,而不是对象之间的交互。

同样以把大象放进冰箱为例:

首先,我们需要检查冰箱的状态,看看它是否打开。如果冰箱是关闭的,我们需要调用打开冰箱的函数或操作,以便能够放入大象。

接下来,我们需要检查冰箱内部的空间是否足够容纳大象。如果空间不够,我们可能需要调用移出一些物品的函数或操作,以便为大象腾出足够的空间。

一旦冰箱打开并且有足够的空间,我们可以将大象放入冰箱。这可能涉及调用将大象放入冰箱的函数或操作,并更新冰箱的状态和容量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/952702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【python爬虫】3.爬虫初体验(BeautifulSoup解析)

文章目录 前言BeautifulSoup是什么BeautifulSoup怎么用解析数据提取数据 对象的变化过程总结 前言 上一关,我们学习了HTML基础知识,知道了HTML是一种用来描述网页的语言,又了解了HTML的基本结构。 认识了HTML中的常见标签和常见属性&#x…

A系统跳转到B系统URl传参与接收

处理url字符串拼接方法new URLSearchParams() A系统 let data { study_id: row.study_id, hospital_id: row.hospital_id, pageType: detail };let params new URLSearchParams(); for (let key in data) {params.append(key, data[key]); } window.open(url ? params.toS…

SpringCloud(十)——ElasticSearch简单了解(二)DSL查询语句及RestClient查询文档

文章目录 1. DSL查询文档1.1 DSL查询分类1.2 全文检索查询1.3 精确查询1.4 地理查询1.5 查询算分1.6 布尔查询1.7 结果排序1.8 分页查询1.9 高亮显示 2. RestClient查询文档2.1 查询全部2.2 其他查询语句2.3 排序和分页2.4 高亮显示 1. DSL查询文档 1.1 DSL查询分类 查询所有…

中央仓库更新失败,IDEA报错repository is non-nexus repo, or does not indexed

某个仓库未被识别为 Nexus 仓库,或者没有被正确地索引。导致引入依赖一直爆红,找不到。只有本地仓库的依赖没报错,因为下载过了,添加新的依赖就需要到远程仓库找就爆红。 解决 去阿里云Maven官网看了一下,发现阿里云…

详解 SpringMVC 中获取请求参数

文章目录 1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、[RequestParam ](/RequestParam )4、[RequestHeader ](/RequestHeader )5、[CookieValue ](/CookieValue )6、通过POJO获取请求参数7、解决获取请求参数的乱码问题总结 在Spring MVC中,获取请…

前后端项目部署上线详细笔记

部署 参考文章:如何部署网站?来比比谁的方法多 - 哔哩哔哩大家好,我是鱼皮,不知道朋友们有没有试着部署过自己开发的网站呢?其实部署网站非常简单,而且有非常多的花样。这篇文章就给大家分享几种主流的前端…

自编码器AE全方位探析:构建、训练、推理与多平台部署

本文深入探讨了自编码器(AE)的核心概念、类型、应用场景及实战演示。通过理论分析和实践结合,我们详细解释了自动编码器的工作原理和数学基础,并通过具体代码示例展示了从模型构建、训练到多平台推理部署的全过程。 关注TechLead&…

软件测试/测试开发丨Python 学习笔记 之 链表

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/26458 链表与数组的区别 复杂度分析 时间复杂度数组链表插入删除O(n)O(1)随机访问O(1)O(n) 其他角度分析 内存连续,利用CPU的机制&#xff0…

上海炒股开户哪个证券公司好?找谁能开低佣金的账户?

在上海炒股开户选择哪家券商都可以,但是要拿到低佣金的账户就有点难度了。上海,简称“沪,是国务院批复确定的中国国际经济、金融、贸易、航运、科技创新中心!正是如此,上海地区的券商公司也是非常之多的,这…

centos安装jdk-8u371-linux-x64.tar.gz包

java -version //查看jdk版本 rpm -qa | grep jdk 删除带有"openjdk"字样的jdk 例: rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64 下载该版本的jdk(jdk-8u371-linux-x64.tar.gz) (https://www.oracle.com/java/technologies/javase/javase8u2…

AI:04-基于机器学习的蘑菇分类

蘑菇是一类广泛分布的真菌,其中许多种类具有重要的食用和药用价值,但也存在着一些有毒蘑菇。因此,准确地区分可食用和有毒的蘑菇对于保障人们的食品安全和健康至关重要。本研究旨在基于机器学习技术开发一种蘑菇分类系统,以实现对蘑菇的自动分类和识别。通过构建合适的数据…

8年经验之谈 —— 如何用 JMeter 编写性能测试脚本?

Apache JMeter 应该是应用最广泛的性能测试工具。怎么用 JMeter 编写性能测试脚本? 1. 编写 HTTP 性能测试脚本 STEP 1. 添加 HTTP 请求 i STEP 2. 了解配置信息 HTTP 请求各项信息说明(以 JMeter 5.1 为例)。 如下图所示: W…

MindsDB为许多不支持内置机器学习的数据库带来了机器学习功能

选择平台的首要原则是“靠近数据”,让代码靠近数据是保持低延迟的必要条件。 机器学习,特别是深度学习往往会多次遍历所有数据(遍历一次被称为一个epoch)。对于非常大的数据集来说,理想的情况是在存储数据的地方建立模型,这样就不需要大量的数据传输。目前已经有部分数据…

如何基于CEETRON ENVISON快速打造桌面、Web端仿真后处理系统?

数十年来,计算机数字模拟技术在物理、化学、工程等领域取得巨大进展。但实现完整的数字孪生 以模拟现实,仍需应对高维度、高精度建模的挑战以及计算机算力需求指数的增长。那该如何解决 这些更复杂的问题?采用具有高性能算力的云端资源进行…

【单片机】有人 WH-LTE-7S1 4G cat1 模块,HTTPD模式,字符串传输,文件传输。GPRS模块连接服务器教程。

文章目录 1、配置模块为HTTPD模式 POST字符串传输2、配置模块为HTTPD模式 GET请求3、 上一篇文章:https://qq742971636.blog.csdn.net/article/details/132571592 在上一篇文章里,已经通过TCP 长链接进行服务器与Cat1 GPRS 模块进行双向通信。已经能够满…

【Pinia状态管理】Pinia和Vuex的对比;创建Pinia的Store;Pinia核心概念State、Getters、Actions

目录 1_Pinia和Vuex的对比1.1_介绍pinia1.2_Pinia和Vuex的区别 2_创建Pinia的Store2.1_安装使用2.2_Store2.3_定义一个Store 3_Pinia核心概念State3.1_认识和定义State3.2_操作State 4_Pinia核心概念Getters4.1_认识2.2_访问Getters 5_Pinia核心概念Actions5.1_认识5.2_Actions…

Nat. Mach. Intell 2023 | DrugBAN+:域自适应的可解释双线性插值网络改进药物-靶标预测(DTI)

DrugBAN:Interpretable bilinear attention network with domain adaptation improves drug–target prediction 论文:Interpretable bilinear attention network with domain adaptation improves drug–target prediction | Nature Machine Intellige…

Python爬虫基础之正则表达式

目录 一、什么是正则表达式? 二、re.compile()编译函数 三、group()获取匹配结果函数 四、常用匹配规则 4.1匹配单个字符 4.2匹配前字符次数 4.3匹配原生字符串 4.4匹配字符串开头和结尾 4.5分组匹配 五、re.match()开头匹配函数 六、re.search()全文搜索…

MusicBrainz Picard for Mac :音乐文件ID3编辑器

MusicBrainz Picard for Mac是一款macOS平台的音乐文件ID3编辑器,能够帮助我们在Mac电脑上编辑音乐文件的ID3标签信息,包括艺人、专辑等信息,非常快速和简单方便。Picard是下一代MusicBrainz标记应用程序。 这个新的标签概念是面向专辑的&…