第1章 Java基本概念及环境配置——FAQ1.01 什么是面向对象程序设计?

FAQ1.01 什么是面向对象程序设计? 
答:
1、首先我们先解释一下什么叫做程序:

程序,香港和台湾对英文procedure的中文译名,编程语言中的procedure在大陆翻译为”过程“,在港台和其他领域则翻为”程序“。在大陆于计算机科学、电脑工程、电子工程、电机工程、机器人工程学、机械工程领域中的英文术语program的中文译名也是”程序“,在港台则翻译为”程式“。
当程序为procedure的译名时,一个程序即是特定的一系列动作、行动或操作,而这些活动、动作或操作必须被执行于相同方式以为了在相同环境下恒常得出相同的结果(例如紧急应变程序)。不太精确的说,程序可以指一序列的活动、作业、步骤、决断、计算和工序,当它们保证依照严格规定的顺序发生时即产生所述的后果、产品或局面。一个程序通常引致一个改变。

2、我们再来说什么叫做程序设计:

程序是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言的程序。
程序设计过程应当包括:分析、设计、编码、测试、排错等不同阶段。专业的程序设计人员被称为程序员。
某种意义上,程序设计的出现甚至早于电子计算机的出现。英国著名诗人拜伦的女儿爱达勒芙蕾丝曾经设计了巴贝奇分析机上解伯努利方程的一个程序。她甚至还建立了循环和子程序的概念。由于她在计算机程序设计上的开创性工作,爱达勒芙蕾丝被称为世界上第一位程序员。
任何设计活动都是在各种约束条件和相互矛盾的需求之间寻找一种平衡,程序设计也不例外,在计算机发展的早期,由于机器资源比较昂贵,程序的时间和空间代价往往是设计关心的主要因素;随着硬件技术的飞速发展和软件规模的日益庞大,程序的结构、可维护性、复用性、可扩展性等因素日益重要。
另一方面,计算机技术发展的早期,软件构造活动主要就是程序设计活动。随着软件技术的发展,软件系统越来越复杂,逐渐分化出许多专用的软件程序,如操作系统、数据库系统、应用服务器,而这些专用的软件系统越来越成为普遍的计算环境的一部分。这种情况下软件构造活动的内容越来越丰富,不再是程序设计活动了,还包括数据库设计、用户界面设计、接口设计、通讯协议设计和复杂的系统配置过程。

3、什么是编程范型:

程序范型或程序范式(范即模范之意,范式即模式、方法),是一种典型的编程风格,是指从事软件工程的一种典型的风格(可以对照方法学)。如过程化编程、面向对象编程、指令式编程等等为不同的编程范型。
编程范型提供了(同时决定了)程序员对程序执行的看法。例如,在面向对象过程中,程序员认为程序时一些列相互的对象,而在函数式编程中一个程序会被看做是一个无状态的函数计算的序列。
正如软件工程中不同的群体会提倡不同的“方法学”一样,不同的编程语言也会提倡不同的“编程范型”。一些语言是专门为某个特定的范型设计的(如Smalltalk和Java支持面向对象编程,而Haskell和Scheme则支持函数式编程),同时还有另一些语言支持多种范型(如Common Lisp、Python和Oz)。
很多编程范型以被熟知他们禁止使用那些技术,同事允许使用哪些。例如:纯粹的函数式编程不允许有副作用;结构化编程不允许使用goto。可能是因为这个原因,新的范型常常被那些惯于较早的风格的人认为是教条主义或过分严格。然而,这样避免某些技术反而更加证明了关于程序正确性——或仅仅是理解它的行为——的法则,而不用限制程序语言的一般性。
编程范型和编程语言之间的关系可能十分复杂,由于一个编程语言可以支持多种范型。例如,C++设计时,支持过程化编程、基于对象编程、面向对象编程以及泛型编程。然而,设计师和程序员们要考虑如何使用这些范型元素来构建一个程序。一个人可以用C++写出一个完全过程化的程序,另一个人也可以用C++写出一个纯粹的面向对象程序,甚至还有人可以写出杂糅了两种范型的程序。

4、什么是面向对象程序设计:

面向程序设计(英语:Obje-oriented-programming,缩写:OOP),是指一种程序设计范型,同时又是一种程序开发的方法论。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
但我们提到面向对象的时候,它不仅指一种程序设计方法。它更多意义上是一种程序开发方式。在这一方面,我们必须了解更多关于面向对象系统分析和面向对象设计(Object Oriented Desgin,简称OOD)方面的知识。

5、什么是面向对象系统分析:

面向对象的分析方法是利用面向对象的信息建模概念,如实体、关系、属性等,同时运用封装、继承、多态等机制来构造模拟实现系统的方法。
传统的结构化设计方法的基本点是面向过程,系统被分解成若干个过程。而面向对象的设计方法是采用构造模型的观点,在系统的开发过程中,各个步骤的共同目标是建造一个问题域的模型。在面向对象的设计中,初始元素是对象,然后将具有共同特种的对象归纳成类,组织类之间的等级关系,构造类库。在应用时,在类库中选择相应的类。

 

FAQ1.01 什么是面向对象程序设计?

posted @ 2010-01-13 23:56  2xd  阅读(462)  评论(0编辑  收藏  举报