二、1什么是面向对象编程?

news2024/11/18 13:31:48

你好,我是程序员雪球,接下来与你一起学习什么是面向对象编程。

83f9cc235b334e2889540d42a2d174cc.png
面向对象编程是一种编程风格。它以类或对象作为组织代码的基本单元,并将封装,抽象,继承,多态四个特性,作为代码设计的实现基石。

 

什么是面向对象分析和面向对象设计?
简单来说,面向对象分析就是要搞清楚做什么,面向对象设计就是搞清楚怎么做。两个阶段最终的产出是类的设计,包括程序被拆解为哪些类?每个类有哪些属性方法,类与类之间如何交互等等。

如何理解面向对象编程四大特性的作用?
封装
也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权函数来访问内部信息或数据。它需要编程语言提供权限访问控制语法来支持,比如JAVA中的private,protected,public关键字。

封装的意义:一保护数据不被随意修改,提高代码的可维护性;二仅暴露有限的必要接口,提高类的易用性。

抽象
主要是如何隐藏方法的具体实现,让使用者只关心方法提供了哪些功能,抽象通过接口类和抽象类来实现,比如JAVA的interface和abstract关键字语法。

抽象的意义:一提高代码的可扩展性,维护性,减少代码的改动范围;二处理复杂系统的有效手段,能有效地过滤掉不必要关注的信息。

继承
表示类之间的is-a关系,分为两种模式:单继承和多继承,单继承表示一个子类只能继承一个父类,多继承表示一个子类可以继承多个父类。继承主要是用来解决代码复用的问题。
但是过渡使用继承,继承层次过深过复杂,就会导致代码可读性,可维护性差,所以应该“多用组合少用继承”。

多态
指子类可以替换父类,在实际的代码运行过程中,调用子类的方法实现。多态这种特性需要编程语言提供特殊的语法机制来实现,比如继承,接口类,duck-typing。多态可以提高代码的扩展性和复用性,是很多设计模式,设计原则,编程技巧的代码实现基础。

我的分享完毕。
欢迎评论,关注,点赞加收藏,并转发给其他人,后期我会持续更新。

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

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

相关文章

Spring Boot 中的 @RabbitListenerContainerFactory 注解

Spring Boot 中的 RabbitListenerContainerFactory 注解 1. 什么是 RabbitListenerContainerFactory 在 Spring Boot 中,我们可以使用 RabbitListener 注解来监听 RabbitMQ 中的消息。RabbitListener 注解会自动创建一个监听器容器,用于接收和处理消息…

Leetcode-每日一题【876.链表的中间结点】

题目 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:head [1,2,3,4,5]输出:[3,4,5]解释:链表只有一个中间结点,值为 3…

云贝餐饮连锁独立版 v2.6.1+公众号+小程序端+抖音端端+全插件免授权安装使用教程

云贝餐饮连锁版这系统应该持续做好多年了比较完善,以前的版本都需要授权一直没使用,整体测试下感觉从体验上还有逻辑设计上都非常不错,首页、会员中心支持DIY装修,配送支持多种平台对接,基本上餐饮行业需要的功能都能满…

Plant, Cell Environment:DAP-seq技术在ZmEREB57调控OPDA合成提高玉米耐盐性研究中的应用

茉莉酸类化合物(JAs)是植物中普遍存在的一类植物激素,在非生物胁迫响应中发挥重要作用。12-氧-植物二烯酸(OPDA)可通过α-亚麻酸(ALA)代谢途径合成JA,是一种重要的JA前体分子。APETA…

DNSPod十问朱智:为什么商场越来越像美食中心?

本期嘉宾 朱智 赢商tech副总裁 朱智,赢商tech副总裁兼首席产品官。线下大数据服务的领军人物,福布斯中国“30under30”人物,拥有10余年线下商业大数据服务经验,致力于商业地产数智化升级领域,服务了包括新城集团、新…

【Linux系统编程】Linux权限理解 及 权限管理

文章目录 前言1. Linux权限的概念2. Linux权限管理2.1 文件类型2.2 Linux用户分类及切换用户分类普通用户—>rootroot—>普通用户普通用户之间的切换单条指令的提权 2.3 用户角色划分/文件访问者的分类(人)2.4 文件类型和访问权限(事物…

windows环境部署nacos注意事项

1.nacos与 eureka部署方式有所不同,nacos需要到GitHub去下载,下载地址:https://github.com/alibaba/nacos,下载好后将文件放至项目中 2.需要将nacos用到的数据文件导入到数据库中 3.需要修改nacos的配置文件 注意:修改…

wampServer安装Redis 扩展

第一步:查看php版本信息 使用 phpinfo() 函数查看 PHP 的版本信息(用于选择扩展包) 版本信息:PHP版本为 8.0.26,编译器版本 Visual C 2019,CPU架构 x64 。 第二步:根据第一步信息的版本选择扩…

jpg图片马使用条件竞争的方法实现二次渲染绕过

文章目录 一、制作图片马二、上传图片马三、上传攻击四、访问攻击五、启动攻击 一、制作图片马 首先使用cmd制作jpg图片马 二、上传图片马 然后打开bp拦截上传该图片马 三、上传攻击 对拦截的结果发送到攻击模块 清除所有变量,payloads做如下设置 四、访问…

VBA之正则表达式(42)-- 快速提取名称

实例需求:A列为待处理数据,现需要从中提取商品名、通用名、胰岛素笔相关信息,保存到B列至D列,需要注意如下几点: 胰岛素笔(E列)数据只存在于每组产品的第一行记录中,例如第2行数据中…

redis配置和优化

关系数据库与非关系型数据库 关系型数据库: 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种基于关系型数据库的…

[MySQL]1292 - Incorrect date value: ‘0000-00-00‘ for column ‘xxx‘ at row 1

第一步、修改mysql配置文件 sql_mode去掉NO_ZERO_DATE 注意:如果mysql配置文件内容没有sql_mode,需要手动加上 mysql配置文件示例: 第二步、重启MySQL

基于Python热门旅游景点数据分析系统设计与实现

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专…

SpringBoot 实现 elasticsearch 查询操作(RestHighLevelClient 的案例实战)

文章目录 1. 环境准备1. 查询全部2. 根据 name 查询 match 分词查询3. 根据 name 和 品牌查询 multiMatch 分词查询4. 根据 brand 查询 match 分词查询5. 按照价格 范围查询6. 精确查询7. boolQuery8. 分页9. 高亮查询9. 公共解析 上一节讲述了 SpringBoot 实现 elasticsearch …

Attention Is All You Need (NIPS 2017)

Attention Is All You Need - 注意力就是你所需要的(NIPS 2017) 摘要1. 引言2. 背景3. 模型架构3.1 编码器和解码器堆叠3.2 注意力3.2.1 缩放点积注意力3.2.2 多头注意力3.2.3 注意力在我们的模型中的应用 3.3 位置前馈网络3.4 嵌入和Softmax3.5 位置编码…

【⑧MySQL进阶】:子查询与HAVING/SELECT的完美结合

前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL子查询在HAVING/SELECT字句中使用、及相关子查询和WITH/EXISTS字句的讲解✨ 目录 前言一、在HAVING/SELECT字句中使用子查询二、相关子查询三、WITH/EXISTS、NOT EXISTS字句四、总结 一、在HAVING/SELECT字句中…

手机提醒打卡软件哪个好用 每日计划的打卡软件推荐

在人生的不同阶段,人们会有不同的目标,为了目标可以很好地实现,可以将其分散为多个不同的小计划,并坚持不断地打卡完成每项计划,助力自己最终完成目标。那手机提醒打卡软件哪个好用些,每日计划的打卡软件推…

针对中国用户?数万个正规网站被劫持

知名安全公司Acronis被黑客攻破,多达12GB的资料泄露。 而黑客给出的攻击理由令人啼笑皆非——在他们看来,这家公司虽然从事网络安全业务,但实际上技术如shit一样。 黑客觉得很无聊,就想羞辱一下对方,遂动手攻击了这家网…

软件设计模式与体系结构-设计模式-工厂模式

目录 0. 学习目标0.1 软件设计模式0.2 软件体系结构 软件设计模式0. 软件设计原则设计模式的分类 创建型软件设计模式一、工厂模式工厂方法与抽象工厂模式1.简单工厂方法模式(开闭原则)优缺点适用场景实例一:简单电视机工厂 2.工厂方法模式优…

人机融合是自由与决定的交互

人机融合是指人类与机器之间的紧密合作与互动。在这种融合中,人类使用机器的能力来增强自身的能力,而机器则依赖人类的指导和判断来发挥作用。这种融合可以带来许多好处和机会,但也伴随着一些挑战和风险。 首先,人机融合可以为人类…