面向对象学习笔记——理解面向对象语言

 面向对象,使得开发者按照人类解决问题的方式来思考,而不是按照计算机解决问题的方式来思考。

用汇编或者C语言这样的面向过程的语言编程,我们需要把问题转化成更偏向于计算机运行的模式。我们需要调整问题去适应我们的计算机,让问题能够按照机器运行的模式去解决。

可是对于Java这种面向对象的语言。他引入了新的功能,对象。我们可以在程序中自由创建各种各样的对象来描述和解决现实生后中的问题。这显然是更符合人类思维习惯的一种方法,因为我们的语言就是按照这种方式在诠释世界。“我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来.....除非赞成这个协定中规定的有关语言信息的组织和分类,否则我们根本无法交谈。”

有了面向对象的编程工具,计算机就并不只是机器那么简单了,他成了头脑延伸的工具,同时还是一种不同类型的表达媒体。面向对象的出现使得计算机越来越不像机器,而更像我们头脑的一部分,以及一种如写作、绘画、雕刻、动画、电影等一样的表达形式。

面向对象语言的特点 

 如何使一门语言成为一门面向对象的语言呢?具备了什么样的特点的语言才能称之为面向对象的语言呢?Alan Kay曾经总结了第一个成功的面向对象语言,同时也是Java所基于的语言之一的Smalltalk的五个基本特征,这些特征表现了一种初萃的面向对象程序设计方式:

  1. 万物皆对象。
  2. 程序是对象的集合,他们通过发送消息来告知彼此所要做的。
  3. 每个对象都有自己的由其他对象所构成的存储。
  4. 每个对象都拥有其类型
  5. 某一特定类型的所有对象都可以接受同样的消息。

Booch对对象提出了一个更加简洁的描述:对象具有状态、行为和标识。这意味着每一个对象都可以拥有内部数据和方法,并且每个对象都可以唯一地与其他对象区分开来,具体说来,就是每一个对象在内存中都有一个唯一的地址。

对象的产生源自类,类的设计是面向对象设计中的核心问题

类描述了具有相同特性和行为的对象结合,所以一个类实际上就是一个数据类型,例如所有浮点型数字具有相同的特性和行为集合。类与数据类型的关键差异在于:程序员通过定义类来适应问题,而不再被迫只能使用现有的用来表示机器中的存储单元的数据类型。可以根据需求,通过添加新的数据类型来拓展编程语言。一旦类被建立,就可以随心所欲的创建类的任意个对象,然后去操作它们,就像他们是存在于你的待求解问题中的元素一样。事实上,面向对象程序设计的挑战之一,就是在问题空间的元素和解空间的对象之间创建一对一的映射。  

猜你喜欢

转载自blog.csdn.net/illikang/article/details/81286025
今日推荐