(自用)关于程序的一些概念3:程序中的“选择“

前言

        学习的基本过程有理解→总结→应用这几个步骤.总结的目的大概是概括出大体的一种思路,一些必然和必不然,整理出"概念",并以概念指导应用

引入

        尝试做一些和编程有关的概念总结.为了满足那个很朴素的想法:总结出概念,编程的思路就水到渠成地来了.---就好像学了单词就想写出好作文一样,当然谁都知道除非天赋惊人,否则这个过程是很困难的.不管怎么说做一点努力.当中肯定有不严谨的地方,看官不必较真

接续与回顾 

        函数是程序的基本单元;

        文件以函数为单位,提供了模块化的功能;

        所有被使用的代码,文件,包括编程语言本身,都代表了被实现的编程思想

程序中的"选择" 

        选择的意思是:不同情况下得到不同结果. 

        说选择是思想也"土"了一点,选择表达的编程思想是:抽象与实现分离.

        编程思想决定了函数逻辑,和编程语言的语法.其中"选择"可以说贯穿了语言的始终,以C/C++为例,探寻选择在语法中的应用.

       

函数

        ----函数定义是一种选择.当选用不同类型的形参时,即表示了逻辑中的"因"是不同的.

        例如:写个气温的函数,

void getTemprature(int month);                 //气温和所处月份有关
void getTemprature(int longitude,int latitude);//气温和经纬度有关

        气温和什么因素相关,是由程序员做出的选择.可能会有疑问,那这些因素都是必然的,不用选择啊,还可以加上太阳作为形参.是的,说法正确,取决于编程者.

        ----函数调用是选择.传入不同的值,得到不同的结果

        ----函数内部的分支语句,条件循环语句是选择

指针 

        指针可以指向数组或者结点.

        当指针指向数据集合中的某个位置时,可以用解引用取得相应位置的值,所以指针也是一种选择

        函数指针可以指向函数,当在函数fun定义中使用函数指针时,调用fun时传入该类型函数.

多态

         多态基于继承.继承是派生类在基类基础上增加了内容.

         多态的核心是基类引用指向派生类对象. 基类可以有多个派生类. 当基类指向一个派生类对象时,即表示选择了此派生类的逻辑.所以多态也是一种选择

泛型 

        泛型把"类"当成参数,形成类模板或者函数模板,显然也是一种选择. 

小结

        抽象与实现分离,编程语言的基本设计思想之一. 有点像"以不变应万变".同时这个思想在程序中有很多应用,比如设计模式中有很多体现.在学习过程中会继续注意

         

       

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

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

相关文章

Android --- 异步操作

同步和异步的差异 同步:在发生某件事后什么也不做,直到该事件完成后,再继续进行 异步:在某件事发生后,可以在等待他完成的时候去处理其他事件,等到该事件发生完成后,再回过头来处理它。 异步…

C#心跳机制服务器

控制台应用项目 Program.cs internal class Program {static Server server;static void Main(string[] args){Server server new Server(IPAddress.Any,3333);server.Start();// 除了服务器监听方法,监听客户连接的方法,扫描客户端是否在线的方法//如…

Linux服务器上激活conda环境conda: error: argument COMMAND: invalid choice: ‘activate‘

正常我们使用如下来流程: 创建环境:conda create -n 环境名称 激活环境:conda activate 环境名称 但是,在Linux服务器上,使用conda activate 环境名称,出现如上图所示的报错。conda: error: argument CO…

2.1 嵌入式八股文(三)

一、C中类成员的访问权限? C通过public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符。在类的内部(定义类的代码内部)&#xff0c…

Excel 常用技巧(六)

Microsoft Excel 是微软为 Windows、macOS、Android 和 iOS 开发的电子表格软件,可以用来制作电子表格、完成许多复杂的数据运算,进行数据的分析和预测,并且具有强大的制作图表的功能。由于 Excel 具有十分友好的人机界面和强大的计算功能&am…

CMSIS-RTOS2简介

本文介绍CMSIS-RTOS2。 1.引入 CMSIS-RTOS2在基于Arm Cortex处理器的设备上运行的实时操作系统内核上指定了通用RTOS接口。应用程序和中间件组件可以使用CMSIS-RTOS2 API在各种软件生态系统中实现更好的代码重用和更简单的集成。 CMSIS-RTOS2还指定了RTOS内核使用的标准OS T…

windows上安装redis,并且用pycharm联通调用测试

在 Windows 上启动 Redis,官网版本不支持windows直接安装,你可以按照以下步骤进行操作: 使用Github Redis 版本启动 Redis 如果你想使用 Redis 在 Windows 上启动 Redis,以下是基本的步骤: 下载 Redis: 访…

回溯算法2(c++)

棋盘问题 题目描述 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。 要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 k个棋子的所有可…

自定义starter并发布maven私服

一、搭建nexus私服 nexus就是maven的私有服务器&#xff0c;这个搭建教程可以在网络上找到很多&#xff0c;这里就不赘述了。搭建完成之后再进行下一步 二、本地maven的setting配置文件中配置nexus的用户名和密码 <servers><server><id>nexus-releases<…

索引在手,查询无忧:MySQL索引简介

在数据库的世界里&#xff0c;MySQL作为一款广泛使用的关系型数据库管理系统。在DB-Engines的2024年5月的数据库管理系统流行度排名中得分1084&#xff0c;仅次于老大哥Oracle&#xff0c;足以MySQL在全球数据库市场中占有重要地位&#xff0c;当然MySQL在2009年被Oracle公司收…

解决使用Jmeter进行测试时出现“302“,‘‘401“等用户未登录的问题

使用 JMeter 压力测试时解决登录问题的两种方法 在使用 JMeter 进行压力测试时&#xff0c;可能会遇程序存在安全验证&#xff0c;必须登录后才能对里面的具体方法进行测试&#xff1a; 如果遇到登录问题&#xff0c;通常是因为 JMeter 无法模拟用户的登录状态&#xff0c;导…

表单中的常用元素

10.图像形式上传文件 <input type“image”>定义图像形式的提交。 src 属性和alt属性必须与<input type“image””>结合使用。 input type"image"src"img/l.jpg"alt"submit"/> 11.下拉列表框 <select>标签定义下拉列表框…

JS中splice怎么使用

在JavaScript中&#xff0c;splice() 是一个数组方法&#xff0c;用于添加/删除项目&#xff0c;并返回被删除的项目。这个方法会改变原始数组。 splice() 方法的基本语法如下&#xff1a; array.splice(start[, deleteCount[, item1[, item2[, ...]]]]) start&#xff08;必…

数据库管理-第205期 换个角度看23ai(20240617)

数据库管理205期 2024-06-17 数据库管理-第205期 换个角度看23ai&#xff08;20240617&#xff09;1 规范应用开发2 融合总结 数据库管理-第205期 换个角度看23ai&#xff08;20240617&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&#xff09; Oracle ACE Pro…

数据库修复实例2(副本出入口修复)

修复目标 修复Bfa-5人副本出入口&#xff08;Bfa 为 WOW 争霸艾泽拉斯版本&#xff09; SET OGUID : 7000316; SET ATID : 69; SET ATCP : 56; SET ATIDSPAWN : 70; SET SPAWNGROUP : 1251; SET WORLDSAFELOCID : 100042;-- Adjust GameObjects DELETE FROM gameobject WHERE…

c# 根据空格分割字符串

在C#中,可以使用以下方法根据多个空格来分割字符串: 使用 Split() 方法: string input " Hello World How are you? "; string[] words input.Split(new[] { }, StringSplitOptions.RemoveEmptyEntries);// words 数组包含: ["Hello", &qu…

Python导出mysql 表ORM模型

1、安装sqlacodegen pip install sqlacodegen pip install pymysql 2、导出指定数据表 单表 sqlacodegen mysqlpymysql://root:password127.0.0.1:3306/test --tables user --outfile user.py 多表 sqlacodegen mysqlpymysql://root:password127.0.0.1:3306/test --tabl…

大量用户中招,远控木马已经潜伏各类在线会议平台

从 2023 年 12 月开始&#xff0c;研究人员发现有攻击者创建虚假 Skype、Google Meet 和 Zoom 网站来进行恶意软件传播。攻击者为安卓用户投递 SpyNote 远控木马&#xff0c;为 Windows 用户投递 NjRAT 和 DCRAT 远控木马。 攻击行动概述 攻击者在单个 IP 地址上部署了所有的虚…

小白入手实现AI客服机器人demo

一、环境准备 1 安装python 2 安装vscode 3 安装相关python库 pip install flask flask_cors openai 4.在vscode里安装TONGYI Lingma(AI编程助手&#xff09; 二、后端搭建 创建一个后端文件夹chatbot&#xff0c;再新建一个app.py的python文件 from flask import Flask, requ…

electron下载失败(electron如何切换镜像源)

打开&#xff1a; 或者&#xff1a; C:\Users\用户名\.npmrc 添加&#xff1a; electron_mirrorhttps://npmmirror.com/mirrors/electron/ 到文件中&#xff0c;保存 方法二&#xff1a; npm config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/ ELECTR…