使用 C# 进行面向对象编程:第 10 部分

news2024/11/25 3:07:45

封装和抽象之间的区别

对于 OOP 初学者来说,封装和抽象之间存在非常基本的区别。他们可能会对此感到困惑。但如果你详细了解这两个主题,就会发现它们之间存在巨大差异。

抽象意味着向用户隐藏不必要的数据。用户只需要所需的功能或根据其需求的输出。例如数码相机。

亲爱的读者,每当我们使用数码相机时,我们只需单击“放大”和“缩小”按钮,相机就会放大和缩小,但我们可以感觉到镜头在移动。如果我们打开相机,我们会看到我们无法理解的复杂机制。因此,按下按钮并根据您的需求获得结果就是抽象。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
封装只是将数据成员和函数组合成一个称为对象的单一实体。

如果我们再次考虑相机示例,当我们按下放大/缩小按钮时,相机内部会使用由齿轮和镜头组成的机制来放大或缩小。齿轮和镜头的组合称为封装,可帮助缩放功能顺利运行。

简单来说,我们可以说“抽象是通过封装实现的”。

或者

抽象解决设计方面的问题,而封装解决实现方面的问题。

例子

输出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

区块A

  • 在本次课程中,我们定义了一个抽象类。
    有一个受保护变量和一个函数。
    B座

  • 在本节中,我们定义了一个以抽象类为基类的类。

  • 具有两个公共变量和两个函数。

  • 一个从基类覆盖的属性 zoomresult

  • 在这个块中,我们改变了齿轮和镜头的值,以便改变_picturesize变量的大小。
    C 座

  • 在本次会话中,我们创建了 camerazoom 类的对象。

  • 然后我们调用了 zoom 方法

  • 之后,我们使用属性显示变量 _picturesize 的输出。

  • 然后我们再次调用方法放大并显示变量 _picturesize 的结果。

  • 在最后一部分,我们调用该方法缩小图片并检查结果。

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

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

相关文章

遵循法规,科学检测:可燃气体报警器多久检测一次?

在工业生产和日常生活中,可燃气体报警器作为一种重要的安全设备,能够实时监测并预警潜在的可燃气体泄漏风险,对于防范火灾和爆炸事故至关重要。 在这篇文章中,佰德将围绕可燃气体报警器的检测频率展开探讨,包括其功能…

基于WPF技术的换热站智能监控系统15--实时读取PLC数据

1、创建PLC实时数据 1、添加数据块 2、创建6个变量 用来表示水泵1和水泵2的参数,可以根据现场实际情况添加更多的变量参数 3、设置块属性并编译 4、下载该程序到PLC中 5、添加监控表 2、读取设备数据 S7协议下的tcp直接通讯,配置简单,一般P…

大模型泡沫退去,谁能活到下半场?

前言 从今年3月开始,国内企业纷纷下场大模型,铆足劲秀肌肉,如今转向垂直行业淘金,试图争霸行业大模型。我们的心态也逐渐从看乐子,到严肃讨论。 在人工智能的世界,我们经历了众多的概念游戏,在…

泛微开发修炼之旅--18泛微OA节点后操作代码自动退回流程的代码示例

文章链接:17泛微OA节点后操作代码自动退回流程的代码示例

短视频压缩与编码技术在短剧APP小程序开发中的应用

在短剧APP小程序开发中,短视频压缩与编码技术是实现高效视频处理的关键。本文将对这两项技术在短剧APP中的应用进行深入分析。 一、短视频压缩技术的重要性 节省存储空间:通过压缩技术,可以减小视频文件的大小,从而节省服务器和用…

【普中】基于51单片机的电子秒表数码管显示( proteus仿真+程序+设计报告+讲解视频)

这里写目录标题 设计资料内容清单&&下载链接资料下载链接:讲解视频:1.主要功能:2.仿真3. 程序代码4. 设计报告 【普中】基于51单片机的电子秒表数码管显示 ( proteus仿真程序设计报告讲解视频) 仿真图proteus8.16(有低版…

8.12 矢量图层面要素单一符号使用一(简单填充)

文章目录 前言简单填充(Simple fill)QGis设置面符号为简单填充(Simple fill)二次开发代码实现简单填充(Simple fill) 总结 前言 本章介绍矢量图层线要素单一符号中简单填充(Simple fill&#x…

玩转nRF52840-DK开发套件(1)

Nordic Semiconductor nRF52840开发套件 (nRF52840-DK) 是一款采用nRF52840多协议SoC(片上系统)的多功能单板开发工具,适用于蓝牙5.2/蓝牙低功耗、802.15.4 / Thread、ANT/ANT以及2.4GHz专有应用。nRF52840-DK与 Arduino Uno Revision 3 标准…

【html】用html5+css3+JavaScript制作一个计数器

目录 简介: 效果图: 源码: html: CSS: JS: 源码解析: 简介: 在日常生活当中很多事情都需要用到计数器特别是在体育运动当中,可以我们那么我们可不可以通过网页来制作一个计数器呢答案是肯定的我们需要利…

猫头虎推荐20个值得体验的通用大模型

猫头虎推荐20个值得体验的通用大模型 🚀 大家好,我是猫头虎,一名专注于科技领域的自媒体博主。今天是周一,新的开始,我们来深入探讨一下当前最值得体验的通用大模型。这些AI模型不仅功能强大,而且在各自领…

YonSuite银企直联:成长型企业数智转型的强力引擎

在当今数字化转型的浪潮中,成长型企业正面临着前所未有的发展机遇与挑战。在这场数字化转型的竞技场上,银企直联凭借其独特的优势,成为企业金融管理的重要利器,为企业带来前所未有的资金管理体验。用友YonSuite作为领先的数智化转…

rk3588 rkllm 安装部署

这是测试版本。 下载转换工具 $ git clone https://github.com/airockchip/rknn-llm.git安装转换环境 遵循此文档在PC Linux上安装Conda。 https://conda.io/projects/conda/en/stable/user-guide/install/linux.html 创建conda $ conda create -n RKLLM-Toolkit python3.…

RAG未来的出路

总有人喊RAG已死,至少看目前不现实。 持这个观点的人,大多是Long context派,老实说,这派人绝大多数不甚理解长上下文的技术实现点,就觉得反正context越长,越牛B,有点饭圈化 ,当然我并不否认长上下文对提升理解力的一些帮助,就是没大家想的那么牛B而已(说个数据,达到…

清远mes管理系统助力企业降本增效

清远MES管理系统可以帮助企业降本增效的方式包括但不限于以下几个方面: 生产过程优化:清远MES系统可以实时监控生产过程中的各个环节,包括设备状态、生产进度、质量指标等,帮助企业管理人员及时了解生产情况并做出相应的调整和控制…

白酒:茅台镇白酒的品牌合作与跨界营销案例

云仓酒庄豪迈白酒,作为茅台镇的知名品牌,在品牌合作与跨界营销方面也有着杰出的表现。通过与不同领域品牌的合作,豪迈白酒进一步拓宽了市场渠道,提升了品牌曝光度和影响力。 首先,云仓酒庄豪迈白酒与品质餐产品牌的合作…

怎么制作酒店订房功能

在这个快节奏的时代,每一次旅行都如同一次心灵的远航。而酒店,作为旅途中的“避风港”,它的选择显得尤为重要。你是否曾在忙碌的行程中,为了寻找一家心仪的酒店而焦头烂额?是否曾在深夜的街头,为了找到一个…

21组Midjourney绘画关键词,专为游戏设计的奇异生物的盛宴

21组AI绘画关键词,无一不在专为游戏设计的领域中发挥着巨大的作用。从2D游戏艺术到Xbox 360图形,从科幻怪物到异世界写实,这些关键词为游戏开发者提供了丰富多彩的创意资源。通过AI绘画工具,游戏画面呈现更加逼真、独特的设计风格…

【拥抱鸿蒙】HarmonyOS NEXT实现双路预览并识别文字

我们在许多其他平台看到过OCR功能的应用,那么HarmonyOS在这方面的支持如何呢?我们如何能快速使用这一能力呢?使用这一能力需要注意的点有哪些呢?就让我们一起来探究吧~ 【开发环境】 版本规则号:HarmonyOS NEXT版本类…

研发团队的「技术债」如何进行量化管理?

我共事过的每个团队都会讨论技术债。有些团队知道如何管理它,也有些团队因此崩溃瘫痪,甚至有一家公司因为技术债务没有得到解决而宣告失败。 什么是技术债务? 「债务」这个比喻非常恰当。最早提出「技术债务 Technical Debt」比喻的工程师 W…

干货 | 使用 Navicat BI 解锁数据的力量

商业智能(BI)是一种将数据转化为可执行洞察的实践,能够帮助业务领导者提升整体业绩。这个过程中最重要的一个阶段是数据探索和可视化阶段,它涉及通过报告将数据组织并转化为有意义的信息。为了让数据更易于理解,BI 专业…