1700415630
图7.1 面向对象编程是什么?
1700415631
1700415632
1700415633
1700415634
1700415635
同样的道理,随着程序员看问题角度的不同,对面向对象编程的理解也会仁者见仁,智者见智。
1700415636
1700415637
那么到底哪种理解方法才是正确的呢?其实无论是哪种方法,只要能够通过实际的编程将其付诸实施,那么这种方法就是正确的。诸位可以用自己的理解方法去实践面向对象编程。虽然是这么说,但如果仅仅学到了片面的理解方法,也是无法看到面向对象编程的全貌的,会感到对其概念的理解是模糊的。因此,下面我们就把各种理解方法和观点综合起来,以此探究面向对象编程的全貌
1700415638
1700415639
1700415640
1700415641
1700415643
计算机是怎样跑起来的 7.3 观点1:面向对象编程通过把组件拼装到一起构建程序
1700415644
1700415645
在面向对象编程中,使用了一种称为“类”的要素,通过把若干个类组装到一起构建一个完整的程序。从这一点来看,可以说类就是程序的组件(component)。面向对象编程的关键在于能否灵活地运用类
1700415646
1700415647
首先讲解一下类的概念。在第1章中讲过,无论使用哪种开发方法,编写出来的程序其内容最终都会表现为数值的罗列,其中的每个数值要么表示“指令”,要么表示作为指令操作对象的“数据”。程序最终就是指令与数据的集合
1700415648
1700415649
在使用古老的C语言或BASIC等语言编程时(它们不是面向对象的编程语言,即不是用于表达面向对象编程思想的语言),用“函数”表示指令,用“变量”表示数据。对于C语言或BASIC的程序员而言,程序就是函数和数据的集合。在代码清单7.1中,用Function X的形式为函数命名,用Variable X的形式为变量命名
1700415650
1700415651
代码清单 7.1 程序是函数和数据的集合
1700415652
1700415653
1700415654
1700415655
1700415656
在大型程序中需要用到大量的函数和变量。假设要用非面向对象的编程方法编写一个由10000个函数和20000个变量构成的程序,那么结果就很容易造成代码混乱不堪,开发效率十分低下,维护十分困难
1700415657
1700415658
于是一种新的编程方法被发明出来了,即把程序中有关联的函数和数据汇集到一起编成组,这里的组就是分类。在C++,Java、C#等面向对象编程语言中,语法上支持类的定义。在代码清单7.2中,定义了一个以MyClass为名称的类。因为程序的构成要素中只有函数和变量,所以把它们分门别类组织起来的类也理所当然地成了程序的组件。通常把汇集到类中的函数和变量统称为类的“成员”(Member)
1700415659
1700415660
代码清单7.2 定义类MyClass,将函数和变量组织到一起(C++)
1700415661
1700415662
1700415663
1700415664
1700415665
为了使C语言支持面向对象编程,人们扩充了它的语法,开发出C++语言。而通过改良C++又开发出了Java和C#。在本章中,将会分别介绍C语言、C++、Java和C#编写的示例程序。在阅读时只需抓住其大意即可,不必深究每个程序的具体内容
1700415666
1700415667
1700415668
1700415669
1700415671
计算机是怎样跑起来的 7.4 观点2:面向对象编程能够提升程序的开发效率和可维护性
1700415672
1700415673
在使用面向对象编程语言开发时,并不是所有的类都必须由程序员亲自编写。大部分类都已内置于面向对象编程语言中了,这些类可以为来自各个领域的程序员使用。通常将像这样的一组类(一组组件)称为“类库”。通过利用类库可以提升编程的效率。还有一些类原本是为开发其他程序而编写的,如果可以把这些现成的类拿过来使用,那么程序的开发效率会更高
1700415674
1700415675
所谓企业级的程序,指的是对可维护性有较高要求的程序。可维护性体现在当程序投入使用后对已有功能的修改和新功能的扩充上。如果所维护的程序是用一组类封装起来的话,那么维护工作就轻松了。之所以这样说,是因为作为维护对象的函数和变量,已经被汇聚到名为类的各个组中了。举个例子来说,假设已经编写出了一个用于员工薪资管理的程序,随着薪资计算规则的变化,程序也要进行修改,那么需要修改的函数和变量就应该已集中在一个类中了,比如一个叫做CalculationClass的类(如图7.2所示)。
1700415676
1700415677
图7.2 只要把组件组合起来就可以高效地开发、轻松地维护
1700415678
1700415679
[
上一页 ]
[ :1.70041563e+09 ]
[
下一页 ]