当前位置: 首页 > article >正文

编程基础篇

什么是编程?

原文地址 :样式不太熟悉,有点单一,原文地址

一千个人眼中有一千个哈姆雷特,以下是我眼中的编程:

A每天出门需要关一下空调,在家喜欢室内温度在 20°左右,6 点左右会打开灯。

那么换成编程语言应该怎么说呢?

如果 : 【出门】 我需要关闭空调

如果 : 【在家】空调温度 = 20°

如果 :【时间 == 18:00】 打开灯

编程,是对现实生活中语言、动作的抽取。不通过汉语,英语……表达。用计算机看得懂的语言说,那么计算机能看懂什么语言?看刚刚的例子 : 如果……否则,刚好面对计算机的 0……1。

结论 : 编程是将生活中的事件换一个角度来说,换成:如果……就,否则……就

if (time == 18:00 && 回家): 打开客厅的灯光

if (出门) : 关闭空调

if (温度 > 20): 调低空调 ……

编程,只是将我们日常生活中的事物,用语言表达出来,再转为机器看得懂的语言。

只有 true 和 false 么

若只有 true 和 false,那么这么多年的计算机白发展了。

A : 这个螺丝要重复打 1000 个,这张试卷我要复印 100 份

共同点 : 重复,循环。如果说 true/false 是计算机的由来,哪循环就是计算机发展起来的原因。

没有人喜欢重复,如果有那就当我没说!

转为编程语言 :

重复(次数:1000次){
    做什么 : 打螺丝
}

编程,就这么朴实无华

正题 : 什么是 web 开发

web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面

当今 web 主流开发方案 :

前后端分离式开发

前后端分离开发是一种现代化的Web应用开发模式,它将Web应用程序的前端(客户端)和后端(服务器端)

前后端分离让前端和后端可以独立开发、测试和部署。这意味着一个团队可以在不影响另一个团队的情况下推进工作,从而加快了整体项目的进度。简单来说:流水线作业

什么是前端

前端指的是用户可以直接看到和交互的部分,也就是Web应用的“客户端”。即浏览器中看见的所有页面,都可以称之为前端。页面的丑与美由前端决定

 

8aed417cbaf1f81c3343e6621e3339ae.png

什么是后端

前端不是以及展示页面了吗,为什么还需要后端?

看主页的头条,热点是一成不变的吗?如果每次变都要对整个页面重新修改,那程序员得累死。

看前端页面的结构,每次打开页面布局基本上是不变的【别杠】,但是数据是不同的,因此数据从后端来,前端只管布局。

举例:前端【A】 ,后端【B】

实现逻辑 :

A ->B 说:我画好了,你来填提一下诗句【数据】

B ->A 说:OK,我看一下今天放什么数据合适,我检测到今天是重阳节,我去拿一首重阳节的诗

B ->A 说:诗给你了,你展示给客户吧

 

a5bb53e1f377484025e0c4fab84799e5.png

总结 :

前端提前将数据存放的位置预留好,当用户打开页面时,前端会向后端发起请求,拿到数据后渲染到页面。

后端需要考虑,今天是那一天,天气怎么样,如果 ……就,否则……就,提供给前端数据。

拿东西 :数据库

刚提到拿东西,顺着说一下数据库。换个名字就懂了,【我的电脑】文件管理系统

数据库只有四种操作 : 添加【新建】、删除、修改、查找

数据就是我们存放数据的地方,要用的时候去操作一下。

 

6dbfc44a133982dc8d03e9d67b7d0dbc.png

前端 -> 后端,怎么说话 :http

人与人之间的交流通过声音传播,而计算机本身没有语言系统,它仅仅知道 0/1。

超文本传输协议(HypertextTransfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头ASCII形式给出;而消息内容则具有一个类似MIME的格式。

 

51ccbbf21faaac33f9312e7e5eb8f66e.png

一个文本汉字等于多少二进制? 一个文本汉字等于16位二进制 ,因此:http : 超文本协议

总结 :

前端 <-> 后端 : 交流通过 http 协议【以及其他协议】交流

后端拿东西,存东西,放到数据中

编程语言 :Java

 

412be28bb97a4d6744a76198a70232a0.png

Java是一种广泛使用的编程语言,由Sun Microsystems(后被Oracle公司收购)于1995年发布。它以其“一次编写,到处运行”的理念而闻名,这意味着用Java编写的代码可以在任何支持Java虚拟机(JVM)的平台上运行,无需重新编译。这种跨平台特性使得Java成为开发各种应用程序的理想选择,包括桌面应用、Web应用、移动应用(特别是Android应用)、企业级解决方案等。

Java 是一种面向对象的强类型语言

什么是强类型语言?

在小学我们学会了:整数、小数、正数、负数、汉字、词语、成语。

在 Java 中,依旧定义了整数、小数、字符【一个字】、字符串【多个字】……

在 Python 中,没有严格定义,都是字

Java : int x = 0; double y = 1.0
Python : i = 0 ; y = 1.0 

Java : int [ 整形数据 ] i = 0

Python : i = 0 [0 是整数、这是整形 ]

强弱类型对比:

Java 从定义的时候就表清楚,这给数只能是某个类型。

Python 中没有明确的看出这是什么类型,虽然底层也会区分

面向对象编程(OOP)

封装、继承、多态

对象 即 封装

从开篇编程是什么来回答,什么是面向对象。

A每天出门需要关一下空调,在家喜欢室内温度在 20°左右,6 点左右会打开灯。

提取这件事中的关键词 : 关空调、温度、时间、灯

我将这四个关键词提取,并将其放到一个盒子中,我起名为《生活》 将会得到 :

《生活》{
    Boolean 空调   //空调这里的属性只有开关
    double 温度    //温度有小数
    Data 时间      //时间一种数据类型
    Boolean 灯     //开关等 true/false
}

《生活》这个盒子就是对象,我把数据放到盒子中,这就是封装,对象中的对象就是属性。

你也还可以这样封装,即:万物皆对象

《开关》{
    Data 时间
    Boolean 空调
    Boolean 灯
}
《其他》{
    Data 时间
    Double 温度
}

封装:指将数据和操作这些数据的方法捆绑在一起的过程。外部代码只能通过公开的方法访问对象内部的数据,这样既保护了数据的安全性,也降低了代码间的耦合度。

继承 : 凡有的,都给他

继承:允许创建新的类基于已存在的类,新类不仅拥有原类的所有功能,还可以添加自己的特性和修改现有功能。

马太效应 : 凡有的,都给他;没有的、连他所有、也要夺取

在《开关》《其他》对象中都有一个属性<时间>,那就把<时间>给他,再继承他《父对象》

《父对象》{Data 时间}
《开关》继承《父对象》{
    Boolean 空调
    Boolean 灯
}
《其他》继承《父对象》{
    Double 温度
}

多态 : 名字一样的对象,功能也一样

多态:同一个接口或基类可以用多种不同的形式表现出来。多态性让程序员能够编写更加通用的代码,提高复用率。

A 说 :我要用圆珠笔写下“hello world”

圆珠笔:有红黄蓝绿……,0.38.0.5……

不管他有多少样式,多么花里胡哨,它是笔,所以它是用来写字的

 

 


http://www.kler.cn/a/419128.html

相关文章:

  • mapstruct DTO转换使用
  • 自动化是语法,智能化是语义与语用
  • 系统监控——分布式链路追踪系统
  • qml项目创建的区别
  • Spring Web开发(请求)获取JOSN对象| 获取数据(Header)
  • 基于yolov8、yolov5的铝材缺陷检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • 英语写作中以rationale 替代reason(理由)
  • node.js基础学习-querystring模块-查询字符串处理(三)
  • 二分搜索(二)搜索插入位置
  • javascript切换类、删除类、修改类以及增加类
  • 低代码与微服务融合在医疗集团中的补充应用探究
  • 计算机网络--网络安全测试
  • 【关闭or开启电脑自带的数字键盘】
  • 第1章-JVM和Java体系架构
  • 【QNX+Android虚拟化方案】127 - QNX侧 uart 读写程序分析
  • MySQL中的count函数
  • 大模型开发和微调工具Llama-Factory-->量化2(AQLM和OFTQ)
  • Ubuntu在NVME硬盘使用Systemback安装记录
  • Design Linear Filters in the Frequency Domain (MATLAB帮助文档)
  • Python json 序列化
  • mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
  • Linux —— 《线程控制》
  • nmap基本用法
  • 【小白学机器学习39】如何用numpy生成总体,生成样本samples
  • 【RISC-V CPU debug 专栏 2.3 -- Run Control】
  • .NET周刊【11月第4期 2024-11-24】