第一章 前言
1.1 计算机程序语言的发展
计算机之所以有强大的功能,是因为它具有强大的硬件系统,同时也包含有与之所需的软件系统。软件包含了使计算机运行的各种程序以及相关的文档资料。其中,程序是指令(计算机可以识别的命令)的集合。
- 机器语言:由计算机硬件系统可识别的二进制指令组成的语言。
- 汇编语言:将机器语言映射成人们可以理解的助记符。
- 高级语言:它摒弃了机器语言的细节,提高了语言的抽象层次,程序中采用具有一定含义的数据命名和容易理解的执行语句。
- 面向对象的语言:面向对象的编程语言与之前的编程语言的根本不同点在于,它设计的出发点就是能够更直接的描述客观世界中存在的事物(即对象)以及他们之间的关系。面向对象的编程语言将客观事物看作具有属性和行为(或服务)的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。
.
1.2 面向对象的方法
- 面向过程的程序化设计:面向过程是自顶向下,逐步求精,其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各个模块之间的关系尽可能简单,在功能上相对独立;每一个模块内部均是由顺序、选择和循环三个基本结构组成;器模块化实现的具体方法是使用子程序。(其优点是将复杂的问题分解成许多易于控制和处理的子任务,便于开发和维护。但是缺点是如果数据结构发生改变,所有相关的处理过程都要进行修改)
- 面向对象的程序化设计:面向对象是将数据以及对数据的操作的方法作为一个相互依存、不可分离的整体——对象。对同类型对象抽象出其共性形成类。类中的大多数据只能用本类的方法进行处理。类通过一个简单的外部接口与外界联系,对象与对象之间通过消息进行通信。(程序模块之间的关系更简单,程序模块的独立性、数据的安全性就有了良好的保障)。面向对象的基本原则就是直接面对客观存在的事物进行软件开发。
1.3 面向对象的基本概念
- 对象:是系统中用来描述客观事物的一个实体,它是用来构建系统的一个基本单位。对象由一组属性和一组行为构成。属性是用来描述对象的静态特征,而行为用来描述对象的动态特征**。
- 类:是具有相同属性和行为的一组对象的集合。分类的依据是抽象,即忽略事物的非本质特征,只注意那些与当前目标相关的本质特征,从而找出事物的共性。
- 封装:把对象的属性和服务器结合成一个独立的系统单位,并尽可能的隐藏对象的内部细节。只保留有限的对外接口使之与外部联系。
- 继承:特殊类的对象拥有其一般类的全部属性与行为,称为对一般类的继承。继承对软件复用有着重要的意义。
- 多态性:一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现不同的行为,称这种情况为多态。
1.4 面向对象的软件开发过程
面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)以及面向对象的软件维护(OOSM)。
- 分析:在分析阶段,要从问题的陈述入手,建立一个说明系统重要特性的真实情况模型。系统分析阶段应该是要精准的抽象出系统必须要做什么,而不关系如何去实现的。
- 设计:在设计阶段,是针对系统的一个具体实现运用面向对象的方法。其中包括两个方面的工作,一是把OOA模型直接搬到OOD,作为OOD的一部分;二是针对具体实现中的人机界面、数据存储、任务管理等因素补充一些与实现有关的部分。
- 编程:就是在OOA和OOD理论出现直线程序员要写一个好的面向对象的程序,需要利用面向对象的思想来认识和解决问题。
- 测试:测试的任务是发现软件中的错误,任何一个软件产品在上线之前需要进行严格的测试。在面向对象的测试中需要运用面向对象的概念与原则来组织测试,以对象的类作为基本测试单位,可以更精准的发现程序错误,提高测试效率。
- 维护:无论经过多么严格的测试,软件通常还是会存在错误。因此软件在使用过程中,需要不断地维护。
1.5 程序开发的基本概念
-
源程序:用源语言编写的,有待翻译的程序
-
目标程序:是源程序通过翻译加工后所生成的程序。目标程序可以用机器语言表示,也可以用汇编语言或其他中间语言表示。
-
翻译程序:是把源程序翻译成目标程序的程序。翻译程序主要包括三个,分别是汇编程序、翻译程序和解释程序。
汇编程序:是用汇编语言写成的源程序翻译成机器语言形成的目标程序。所以用汇编语言写的程序先要经过汇编程序的加工,变成等价的目标代码。
编译程序:若源程序是用高级语言编写的,经过翻译程序加工生成目标程序,那么该翻译程序就是编译程序。若目标程序是用汇编语言表示,那么在经过编译程序加工后,还要经过汇编程序编译然后生成目标代码。
解释程序:跟编译程序类似,将高级语言编译成目标程序。但是在翻译过程中,解释程序是输入一句,翻译一句,执行一句,直至将整个源程序翻译并执行完成。
程序执行过程
1.6 总结
虽然在此之前有C++的基础,但是很长时间没有使用,所以想着在家有闲暇时间可以重新学习一下,把自己作为一个零基础的学习者来学习。在这个博客中我的参考资料是我本科的学习教材。
本章小结:面向对象的软件工程是面向对象的方法在软件工程领域的全面应用,我们可以看到我们时代在发展,所以随之而来的是需要编程语言能够顺应时代的发展而做出相应的改变。面向对象的编程思想能够很友好的解释人们生活发生的种种问题。