面向对象编程的核心是抽象,其抽象是人类特有的一种思维方式。其中管理抽象的有效方法是使用层级分类,它允许根据物理意义将复杂的系统分解为更多更易处理的小块。
面向对象编程的核心是什么?
面向对象编程的核心是抽象。抽象(abstraction)是人类特有的一种思维方式,人们通过抽象处理复杂性。例如,人们不会把一辆汽车想象成由几万个互相独立的部分所组成的一套装置,而是把汽车想成一个具有自己独特行为的对象。
这种抽象使人们可以很容易地将一辆汽车开到杂货店,而不会因组成汽车各部分零件过于复杂而不知所措。人们可以忽略引擎、传动及刹车系统的工作细节,将汽车作为一个整体来加以利用。
使用层级分类是管理抽象的一个有效方法。它允许根据物理意义将复杂的系统分解为更多更易处理的小块。
从外表看,汽车是一个独立的对象。一旦到了内部,会看到汽车由若干子系统组成:驾驶系统、制动系统、音响系统、安全带、供暖、便携电话等。再进一步细分,这些子系统由更多的专用元件组成。
例如,音响系统由一台收音机、一个CD播放器,或许还有一台磁带放音机组成。从这里得到的重要启发是,通过层级抽象对复杂的汽车(或任何另外复杂的系统)进行管理。
复杂系统的分层抽象也能被用于计算机程序设计。传统的面向过程程序的数据经过抽象,可用若干个组成对象表示,程序中的过程步骤可看成是在这些对象之间进行消息收集。
这样,每一个对象都有它自己的独特行为特征。可以把这些对象当作具体的实体,告诉它们做什么事的消息做出反应。这是面向对象编程的本质。
面向对象的概念是Java的核心,对程序员来讲,重要的是要理解这些概念怎么转化为程序。
在任何主要的软件工程项目中,软件都不可避免地要经历概念提出、成长、衰老这样一个生命周期,而面向对象的程序设计,可以使软件在生命周期的每一个阶段都处变不惊,有足够的应变能力。