如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第一章简介要想理解面向对象编程这一领域,先观察一下你周围的世界。你可能会看到真空吸尘器、咖啡壶、吊扇以及其他许多东西。在你视野所及的每一个地方,都有对象包围着你。有一些对象(如相机)是独立操作的。有一些对象(如电话和电话应答机)是彼此相互作用的。有一些对象包含在多次使用之间保留的数据,如手机中的通讯簿。有一些对象包含其他对象,如冰箱里面的制冰器。许多对象在功能上相似但用途不同。例如,浴缸和厨房水槽都提供水并且都是用于清洁。但是在厨房水槽中洗澡或者在浴缸中洗碗的情况却很少发生。不过,房间中的浴缸和厨房水槽可能共用相同的管道。当然,它们共用一个公用接口:冷热水旋钮、水龙头和排水管。在思考这个问题的时候,厨房水槽和浴缸之间的差别是什么?位置?水盆的大小?距离地面的高度?有多少相似性多于差别?根据环境的不同,有时相同的操作可能使一个对象做不同的事情。在遥控器上按下Play键时,DVD可能在电视上播出一部电影。但是,如果在播放机中放的是CD,那么它将通过音箱播放出音乐。虽然按钮相同,操作相同,但是结果不同。910第一章在轻按后面走廊上的开关时,电灯亮了。但是厨房中的这种开关却启动了垃圾处理。虽然使用的是同一种开关,但是却得到了不同的结果。可以按照“黑盒子”的方式思考我们周围的许多对象。虽然你理解这些对象的基本原理并基本掌握了它们的操作方法,但是却不知道它们操作的细节。并且你喜欢这样。为了使用房间里的每一个对象,难道你真的希望必须了解其内部机制吗?考虑一下后面走廊上的电灯泡。灯泡中的灯丝只不过是一个简单的电阻器。当100瓦的灯泡“点亮”时,灯丝的温度约为2550摄氏度。由此导致的热辐射(它正比于灯丝的长度而不是直径)产生大约1750流明(光通量单位)的可见光,波长约为555毫微米。顺便提一下,灯丝是由钨制成的。你真的想要知道这些微小的细节吗?还是只想在轻按开关时点亮电灯?任何对象都具有两个内在属性:“状态”和“行为”。走廊上的灯泡具有状态。它可以开或者关。它具有商标和平均寿命。它已经使用了一段时间。在灯泡钨丝不规律蒸发而导致灯泡烧坏之前,它还剩有一定小时的寿命。在行为上,它提供光线,它会发光。但是,一个对象很少是孤立的。许多对象共同参与到一个系统中。电视和环绕音箱是一个名为家庭影院的系统的一部分。冰箱和烤箱属于一个名为厨房的系统。这些系统又是一个名为房间的更大系统的一部分。房间的集合组成一个名为综合性建筑的系统。房间和住宅属于近邻,以此类推,没有穷尽。实际上,本书讨论的是系统。创建和设计对象是创建系统过程中的一个方面。决定这些对象如何相互作用是另一个方面。在创建任何稍微复杂一些的系统时,理解这两个开发阶段是至关重要的。通常,可以将这种开发一个系统的过程看作是面向对象的编程和面向对象的设计。特别是,你正在理解所创建的对象以及它们参与到其中的系统。基于组件的编程构成了这个系统的基础。简介11软件中的编程对象并不要求一种面向对象的语言,你使用面向对象的编程语言并不意味着代码也是面向对象的。语言只能够促进过程,它们不能够做任何保证。VB中总是存在编写面向对象的软件的能力。因为语言并不总是面向哪个方向,所以编写这样的软件并不总是容易。现在,在VB中开发二进制可重用组件已经成为可能,但是跨语言使用这些组件常常被认为是不可能的——到目前为止还是这样。现在,VisualBasic.NET是一种最先进的面向对象语言,它在一种最新的环境内部运行。它拥有许多特性,可以利用面向对象编程中的最新进展。编写软件和创建组件从来没有比现在更简单。VisualBasic.NET和面向对象编程VisualBasic.NET是一种完全面向对象的编程语言,这意味着它支持面向对象编程的4个基本原则:抽象、封装、继承和多态。我们在前面讨论了日常生活中的一些对象,已经对面向对象的许多概念有了一定了解。下面我们将进一步讨论这些术语,了解它们的实际含义以及它们对面向对象软件的开发人员的作用。抽象无线电收音机有调谐器、天线、音量控制器和开关。要想使用收音机,不需要知道天线如何捕获无线电频率信号,将它们转换成电信号,然后通过高频放大电路增加它们的强度。也不需要知道产生的电流是如何筛选、放大并最终转换为声音的。你只需要打开收音机,调到希望收听的电台,然后收听节目即可。那些内在的细节是不可见的。因为现在并不只有那些知道技术的人才能使用收音机,每个人都可以使用它,所以这一特性非常重要。聘请一位顾问,每次想要听收音机时都让他来到家里是非常昂贵的。换句话说,你可以认为收音机是一个对象,它被设计为隐藏了其复杂性。1