面向对象的理解

1.结构化程序设计(面向过程)

结构化程序主张按功能来分析系统需求,结构化的主要原则:

  • 自顶向下

  • 逐步求精

  • 模块化设计

结构化程序会按功能把程序分为一个个的单独的文件,例如:让灯亮这个功能,就会由多个函数构成一个文件,这个文件用于实现让灯亮这个功能。

总结:

  1. 结构化程序最小程序单元是函数
  2. 其中包含一个程序入口main,该main函数调用其他普通函数,其他普通函数之间依次调用
  3. 结构化程序设计需要考虑如何将每个模块分解为子模块,直到精简为一个个的函数

在这里插入图片描述

2.面向对象程序设计

面向对象的思想:从现实世界客观存在的事物(对象)出发来构造软件系统,强调直接以现实世界中的事物(对象)为中心来思考,根据事物的本质特征,抽象的表示为系统中的类,使得软件系统保持了客观世界事物及其相互关系的本来面貌,即软件系统就是用于管理和维护对象之间的关系。

  1. 面向对象的思想特点

    • 是一种更符合人们思想习惯的思想

    • 可以把复杂的思想简单化

    • 将我们从执行者变成了指挥者

  2. 如何确定一个对象:

    • 有哪些类?

    • 每个类有哪些东西?

    • 类与类之间的直接关系是什么?

  3. 如何描述事物;

    • 该事物的描述信息

    • 该事物能做什么?

  4. 事物与java中的对象有什么关系:

事物=类
属性=成员变量
行为=成员方法

面向对象程序设计中的方法等价于结构化程序设计中的函数的概念,都是用于描述功能

函数:用于完成某一功能而抽离出来的特有的达到某一目的的结构

方法:用于体现该对象的某一特征。例如:我会唱歌,唱歌是一个对象特有的功能(不是每个人都会唱歌,也不是每个人唱歌的方式都一样),如何唱歌,在方法里具体实现,如:烟嗓音唱歌,怒音唱歌,颤音唱歌等等

举例:实现猪八戒吃西瓜这件事

面向过程:吃(猪八戒,西瓜)

面向对象:猪八戒.吃(西瓜)

2.1面向对象具有的功能

  • 对象是面向对象方法中最基本的概念,对象的基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好

  • 类是具有共同属性,共同方法的一类事物。类是对事物的抽象,对象则是类的实例,类的封装性将各种信息细节隐藏起来,并通过公用方法来暴露该类对外提供的功能,从而提高了类的内聚性,降低了对象之间的耦合性

  • 对象间的互相合作需要一个机制协助进行,这样的机制称为消息,消息是一个实例与另一个实例之间相互通信的机制

  • 在面向对象方法中,类之间共享属性和操作的机制称为继承,继承具有传承性,继承分为单继承和多继承(Java不支持多继承)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

银行总部文件自动下发,如何保证不影响专线网络使用?

银行在我国金融体系中占据重要地位,是我国市场经济的重要组成部分。我国商业银行随着自身不断发展,规模日益扩大,形成了“总行-分行-支行-营业网点”的典型层级管理模式。在日常中,银行总部存在文件下发的场景: 银行总…

c4d云渲染是工程文件会暴露吗?

在数字创意产业飞速发展的今天,C4D云渲染因其高效便捷而备受欢迎。然而,随着技术应用的深入,人们开始关注一个核心问题:在享受云渲染带来的便利的同时,C4D工程文件安全吗?是否会有暴露的风险?下…

常见的字符编码

字符:各种文字和符号的总称,包括各个国家的文字,标点符号,图形符号,数字等 字符集:字符集是多个符号的集合,每个字符集包含的字符个数不同 字符编码:字符集只是规定了有哪些字符&a…

openlayers绘制经纬网格,有添加或者移除功能

项目需要在地图中添加经纬网格,然后看了一下官网有相关的介绍 官网 我的项目是vue写的,当点击多选框显示隐藏经纬网格,下面直接写代码 这是绘制经纬网格方法 //引入 import TileArcGISRest from ol/source/TileArcGISRest import "ol/o…

k近邻和kd树

K近邻 选取k值的时候可以采用交叉验证的方法 一般采用欧氏距离 kd树 采用树这个特殊的数据结构来实现k近邻算法 先假设是二维的情况 下面讲解kd树的完整构造过程 找这个中位数是按照每棵子树来创建的 前提是已经有了一棵kd树,然后来一个实例点

Ai编码的助手,现在我用这个

给你分享一个AI编码助手—百度Comate! https://comate.baidu.com/zh/shopping?inviteCodeaz5z518a 记得在你的vscode 或 jetbrains编码工具里体验体验哦

Python UDP编程简单实例

TCP是建立可靠的连接,并且通信双方都可以以流的形式发送数据。 相对于TCP,UDP则是面向无连接的协议,不需要建立连接,只需要知道对方IP地址和端口号,就可以直接发送数据包。但是只管发送不保证到达。 虽然UDP传输数据…

新定义RD8T36P48点亮LED--汇编

其实汇编和C语言差不多,简单的东西用汇编挺好,中等及以上复杂度的程序还是C语言更灵活 直接在keil新建好工程,选好芯片型号和下载方式,再创建一个.asm文件并添加到工程, 工程创建完如图 工程配置 代码 ORG 0000HL…

U-Mail邮件系统取得多项适配认证,全面支持国产化信创环境

随着信息技术的发展,信息化建设越来越深入到社会各个领域,成为驱动经济社会发展的重要力量。在此背景下,我国正加快构建国家信息安全保障体系,实现自主可控,形成安全可靠的信息技术体系。这正是我们所说的“信创”&…

【计算机网络原理】浅谈应用层协议的自定义和传输层UDP协议的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

重磅推荐!四信AI智能一体屏系列全网上线

近年来,随着物联网、云计算、人工智能等新兴技术快速发展,制造、能源、交通、零售、医疗等行业设备需要更高程度的自动化控制。 传统的计算机和控制设备早已无法满足如今高性能复杂任务的要求,越来越多主流行业的项目落地依靠工控机&#xff…

CCF20221201——现值计算

CCF20221201——现值计算 代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {int n,a[1001];float i,sum0.0;scanf("%d %f",&n,&i);for(int j0;j<n1;j){scanf("%d",&a[j]);suma[j]*pow((1i),-j);}print…

抽烟行为检测:从传统巡查到智能算法

在当前人工智能和计算机视觉技术的迅猛发展下&#xff0c;基于视觉分析的抽烟行为检测算法成为一种高效的技术手段。此类算法通常依赖于深度学习模型&#xff0c;特别是卷积神经网络&#xff08;CNN&#xff09;&#xff0c;通过对摄像头捕捉的视频流进行实时分析&#xff0c;能…

2024.05.23 学习记录

1、 react hooks 面经复习 2、xiaolin coding 计算机网络 复习 3、组件库 subMenu、test测试、tabs组件初步开发完成 4、代码随想录刷题&#xff1a;动态规划 01背包 all

【C#】怎么取到范型里具体属性的数据

文章目录 我们在编程程序时&#xff0c;经常会遇到功能非常相似的模块&#xff0c;只是它们处理的数据不一样。但我们没有办法&#xff0c;只能分别写多个方法来处理不同的数据类型。这个时候&#xff0c;那么问题来了&#xff0c;有没有一种办法&#xff0c;用同一个方法来处理…

HTML5好看的通用网站模板源码

文章目录 1.设计来源1.1 主界面1.2 模板菜单1 界面1.3 模板菜单2 界面1.4 模板菜单3 界面1.5 下拉菜单1 界面1.6 下拉菜单2 界面1.7 模板菜单4 界面1.8 模板菜单5 界面1.9 界面底部 2.效果和源码2.1 动态效果2.2 源码目录2.3 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址…

物联网网关硬件和云端分别实现了哪些功能?天拓四方

在物联网&#xff08;IoT&#xff09;的广阔领域中&#xff0c;物联网网关硬件和云端各自扮演着不可或缺的角色。它们通过一系列功能&#xff0c;共同确保物联网系统的顺畅运行&#xff0c;为各类设备提供稳定、高效的数据传输与处理服务。本文将详细解析物联网网关硬件和云端分…

数字人实训室解决方案

前言 近年来&#xff0c;政策层面的积极推动为数字人产业铺设了坚实的基石。2021年&#xff0c;“十四五”规划将虚拟数字技术纳入其中&#xff0c;强调技术创新引领行业应用的革新&#xff0c;加速数字人在各领域的实际应用。紧接着的《“十四五”数字经济发展规划》进一步明确…

multipleTable.value.toggleRowSelection 失效

1、 场景 表格是封装的一个组件&#xff0c;我在别的页面使用到了&#xff0c;需要把别的页面回显的数据传到表格组件里面 2、失效图 可以看到图片上是获取到了test用户的&#xff0c;但是我们的勾选没有勾上 3、解决办法 监听初始化选中的数据&#xff0c;我们需要用获取的…

Linux 应用入门(一)

1. 交叉编译 概念&#xff1a;在当前编译平台下&#xff0c;编译出来的程序能运行在体系结构不同的另一种目标平台上&#xff0c;但是编译平台本身却不能运行该程序。 为什么需要交叉编译&#xff1f; 速度&#xff1a;目标平台得运行速度比主机往往慢得多&#xff0c;因为许多…