1.什么是语言?如汇编,c,c++ ,java等
- 语言是一种我们交流所遵守的协定,我们遵守某种协定以达到互相交流的目的,如果我们所遵守的协定是不同的,那么是无法完成交流的。
2.对计算机的解释。
- 计算机是头脑延伸的工具,同时还是不同类型的表达媒体。面向对象语言只是以计算机作为表达媒体的大趋势的组成部分。
3.什么是建模?
- 建模就是为实际事物建立模型,是为了理解某个实际的事物而将此事物抽象,使它更容易被接受。
4.抽象的过程。
- 所有的编程语言都提供抽象机制,人们能够解决问题的复杂性取决于抽象的类型(所抽象的是什么事物)和质量。
- 汇编语言是对底层机器的抽象,而相继出现的命令式语言是对汇编语言的抽象。
- 从汇编语言到上述的命令是语言是一个重大的改进,但我们知道抽象具体事物是为了解决具体的问题而出现的。
- 但是所谓的命令是语言在解决具体出现的问题之前仍要基于计算机的结构而不是直接基于所要解决的问题的结构而考虑 。
- 程序员必须建立起在机器模型和实际模型之间的关联。这不属于编程语言所固有的功能,程序员是可以不同这个功能的,但早期必须懂
,也必须这么做,非常的蛋 疼也有很多问题的出现。 - 还有一种对机器建模的方式就是只针对待解决问题建模。不做介绍
5.面向对象的抽象过程。
- 面向对象通过向程序员提供表示问题空间(即问题存在的地方)中的元素(即现实世界中的具体事物,如杯子等)的工具,注意:是提供工具。
使得程序员不会受限于任何特定类型(所抽象的是什么事物,问题空间中的元素,或元素所要表示是事物)的问题,因为面向对象已经为程序
员提供了抽象特定类型的工具,使得程序员不必懂得建模等其他不属于变成语言的知识就可以针对特定的问题来解决问题,而不需要再考虑计
算机的抽象等复杂操作。 - 面向对象是我们隔过计算机而针对问题解决问题,很爽。
- 对于设计良好的程序,通过阅读它就可以很容易的理解其代码,这也是面向对象的特点。
6.什么是面向对象。
- 面向对象为程序员提供了表示问题空间中的元素的工具。
- 万物皆是对象。 所有现实世界中的事物都可以抽象为对象。 它是一个奇特的变量,可以存储数据,也可以执行 操作(动作反应)。
- 对象是待解决问题中元素的抽象表示。
- 程序是对象的集合,各个对象之间通过发消息来告知彼此所要做的,在java中就是互相调用方法的请求。
- 每个对象都有自己的由其他对象所构成的存储。各种对象组合在一起可以构建更复杂的体系,同时可以将其复杂性隐藏在对象的简单性背后。
- 每个对象都有其类型。即每个对象都是某个类(所抽象的东西(现实中的具体事物))的一个实例。这里的类就是类型的同义词。
- 某一特定类型的所有对象都可以接收同样的消息。eg:一个圆形的对象必定能够接收发送给几何形对象的消息。即调用方法。
- booch对对象更简洁的描述。对象具有状态(内部数据),行为(内部方法)和标识(每一个对象在内存中都有一个唯一的地址)。
- 程序员通过自定义类来适应问题,而不用再被迫只能使用现有的用来表示机器中的存储单元的数据类型来解决问题,
也就是说我们不用针对计算机来解决问题,而是直接针对问题来解决问题,这也是面向对象的内涵所在
我们不再需要针对计算机建模后才能对问题建模,而是直接针对问题建模
7.面向对象程序设计的挑战或难题是什么?
- 问题空间(问题存在的地方)的元素[实际问题中的具体事物]和解空间(对问题建模的地方)的对象[我们所创建的具体对象 new...]之间创建一一对应的映射。
8.问题空间和解空间?
- 问题空间:实际问题存在的地方(现实中存在的)
- 解空间:对实际问题建模的地方(抽象现实所得到的结果)