技术标签: 面向过程 面向对象 声明式 命令式 编译型 解释型 分类
过程 是一个早期的编程概念,类似于函数,都是对一段功能独立的代码进行封装,但没有返回值。
函数 不仅能执行,还可以利用return关键字返回结果。
面向过程:强调怎么做(函数),把完成某一个需求的所有步骤从头到尾逐步实现,根据开发需求,将某些功能独立的代码封装成一个又一个函数,最后完成的代码,就是在一个主函数中顺序的调用不同的函数。面向过程的编程语言,注重步骤与过程,不注重职责分工,如果需求复杂,代码会变得很复杂,开发复杂项目,没有固定套路,难度大。
面向对象:强调谁来做(对象),相比函数,面向对象是更大的封装,根据职责在对象中封装多个方法。在完成某一个需求前,首先确定职责———要做的事(方法),根据职责确定不同的对象,在对象中封装不同的方法(多个),最后完成的代码就是顺序的让不同的对象调用不同的方法。面向过程的编程语言,不同对象担任不同职责,更加适合复杂项目开发,提供固定思路,需要在面向过程的基础上在学习一些面向对象的语法。
注:而且面向对象更加方便,eg:生命值这一个方法,不同的对象都可以调用
①声明式语言:html 、css 、 sql、Vue、React
声明式编程:告诉”机器“你想要的是什么,让机器去想如何做这件事,而不关注具体该怎么实现。
就像告诉你朋友画一幅什么样的画,而不用管他怎么画出来的。
②命令式语言:JavaScript 、 java、 c#、JQuery
命令式编程:命令“机器”如何做这件事,按照你的命令一步一步实现,计算机会严格遵循你的指令,而不理会最后的结果是不是你所想要的。
可以简单的理解为,声明式的语言,告诉它需要放一个图片,它就会显示一个图片;而命令式的语言,会严格遵循代码所写逻辑,最后结果是不是自己想要的,需要看自己所写代码逻辑是否正确。
注:1.总体上,语言可以分为 声明式语言 和 命令式语言,在某一种语言中,可以分为 声明式编程方式 和 命令式编程方式。
2.声明式编程方式其实就是把一些功能封装成一个函数,用的时候直接调用该方法即可,或是直接利用第三方的函数实现某些功能。开发过程中,尽量使用声明式编程方式编程,把一些复用率高的功能抽象成一个个函数,使代码更加优雅。
按照翻译代码的方法可以分为 编译型语言 和 解释型语言,其实解释型语言不会转化成二进制语言
编译型语言 | 解释型语言 | |
---|---|---|
优点 | 速度快 | 跨平台 |
缺点 | 移植性不好(不跨平台) | 稍慢 |
eg | C 、 C++ | JavaScript、Python、PHP |
注:Java既不是编译型语言也不是解释型语言,.java文件通过javac(Java编译器)阅读编译成.class文件,在通过jvm虚拟机解释执行程序(Java程序要在JVM上解释运行)。因此Java语言需要编译,并且具有较好的跨平台性。
.java ----javac编辑器---- .class ----jvm虚拟机----
(1)编译型语言
通篇翻译,计算机阅读完一整篇代码一起翻译,生成文件,最后程序执行翻译出来的文件 (eg:C语言 .c文件 生成 .obj文件 然后生成 .exe文件 ,然后执行程序)
由于编译型语言快的特点,所以可以做 操作系统 、游戏引擎之类的程序
(2)解释型语言
计算机阅读一行代码,翻译一行代码,不生成文件,直接执行程序
大多数家用的操作系统都为Windows系统,但是大多数服务器都是Linux 、Unix,因为Linux 、Unix操作系统稳定
机器语言:0和1,人类几乎没办法阅读、理解
汇编语言:由一些特定指令构成,学习成本比较高;在底层做一些驱动,体积小,运行效率高
高级语言:c、c++、java、php、python、javascript等
脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。
脚本的用意是为了可再现的重复一个设定好的规程。
不管是哪种脚本,能实现的功能都差不多,只是每种脚本语言都有自己特定的语法
脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间,也是一种编程语言。JavaScript、Python都是脚本语言。
脚本语言一般都是以文本形式存在,类似于一种命令。
优点: 快速开发:脚本语言极大地简化了“开发、部署、测试和调试”的周期过程。 容易部署:大多数脚本语言都能够随时部署,而不需要耗时的编译/打包过程。
使用arm-eabi-addr2line工具跟踪Android调用堆栈作者:liangshengyang转自:http://www.linuxidc.com/Linux/2011-01/31803.htm在通常的C/C++代码中,可以通过响应对内存操作不当引起的Segmentation Fault错误即信号SIGSEGV(11)做出响应处理。只要在程序中设置SIGSEGV的hand
BOOL Commonlib::GetArxPath(CString &path){ CString ArxPath; ACHAR modulePath[512];//取应用程序路径 //CString FileName = acedGetAppName(); //功能与下个函数重复 DWORD pathLength = GetModuleFileName(_hdllInstance, modulePath, 512); if (pathLength) { ArxPath
ioi 2014 railSo many things in the world would have never come into existence if there hadn’t been a problem that needed solving. This truth applies to everything, but boy, is it obvious in the world ...
crontab的最小时间时间是一分钟,那么,如果想要更快的话,可以通过调用shell脚本,然后脚本中循环执行即可,代码如下crontab中,每分钟调用一次sheel*/1 * * * * bash /data/www/test.shtest.sh脚本如下#!/bin/bash#循环29次for((i=1; i do /data/www
A. 求浙江计算机二级办公室软件高级应用试题库(历年真题)最好 及其步骤系统. [email protected]邮件已发B. 求浙江计算机二级办公软件高级应用题库习题复习资料!!!网络文库里搜索你想要找的文档就可以,一般都可以找到。C. 大学里办公软件高级应用与案例精选选择题题库WPS Office考试内容 一、基础知识 1、计算机的概念、类型及其应用领域;计算机系统的配置及主要技术指标。 2、...
c ++ CreateFile函数错误[关闭](c++ CreateFile function error [closed])我想使用函数CreateFile来创建一个文件,但有些东西是错的,我不知道是什么。 GetLastError()给出错误87,这是参数不正确,但我找不到哪一个。码:HANDLE Create;Create = CreateFile("D:\Test.txt",GENERIC...
1:for循环的格式? 用for循环完成如下案例 求和 for (int i =1;i<=10;i++) sum+=i; 求偶数和 for (int i =2;i<=10;i+=2) sum+=i 求奇数和for (int i =1;i<=10;i+=2) s...
ASCIIpublic void OnClick(string me){byte[] data = Encoding.ASCII.GetBytes(me);string result = string.Empty;for (int i = 0; i < data.Length; i++){result += Convert.ToString(data[i], 16);}by...
一、无线局域网概述1、WLAN在距离有限区域内实现无线通信,通常指采用无线传输介质的计算机局域网2、优点:移动性、灵活性、可伸缩性、经济性局限:可靠性、带宽与系统容量、兼容性与共存性、覆盖范围、干扰、安全性、移动性二、无线局域网的组成与服务1、组成(1)站(主机或者终端):包括终端用户设备、无线网络接口、网络软件(2)无线介质:(3)无线接入点(AP):无线网络核心(4)分布式系...
现象:1、dev目录下木有video2、lsusb命令看不到摄像头驱动信息 解决方法:在vmware 工具栏中依次选择vm->Removable Devices->设备名->connect
SSM整合新建数据库:程序员90%的操作是增删改查,只是花样不同【固定配置直接拷贝即可】依赖:junit,数据库驱动,连接池,servlet等静态资源导出:导入一些properties,xml文件连接数据库建包:pojo,dao,service,controller实体类:dao下的mapper:对应的xml文件:一个xml对应一个接口,声明namespace写...
Cesium 上手不完全指北将最近学习的 CesiumJS 做一个系统梳理,从项目配置开始,记录常用 API 的使用。环境搭建与安装首先,什么是 Cesium,Cesium 是一款开源的基于 JavaScript 的 3D 地图框架,即地图可视化框架。产品基于 WebGL 技术,可以使用 CesiumJS 创建虚拟场景的 3D 地理信息平台。其目标是用于创建以基于 Web 的地图动态数据可视化。在提升平台的性能、准确率、虚拟化能力、易用性方面提供各种支持。更多介绍和信息可通过官网进行学习。注册