Visual Basic .NET程序设计(第3版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.7 什么是VB.NET的面向对象编程

有了上面的VB.NET示例程序的例子,我们就可以把IDE环境下的编程归纳为按照一个确定的步骤去解决问题。这只是简单的过程,真正富有创造性的和最困难的工作是进行程序主体的设计。

1.今天的程序交互

今天的计算机中GUI界面(如Windows)已经是主流,因此利用图形进行信息交互就成为程序设计的一个重要部分,本书将主要介绍窗体应用程序的创建。早期的程序设计需要编程者在屏幕上一点一点地“画”图,更难的是,在编程时看不到这些点变为图的效果。随着GUI技术的发展,窗口(包括控制菜单按钮、最大/最小化窗口、关闭窗口,改变窗口大小等按钮)、菜单、工具按钮、对话框等GUI部件几乎是每个应用程序都必需的,因此语言开发商把这些公共部件预先定制,编程者使用这些定制部件时,只要给这些部件进行属性设置(如取名、改变颜色、添加标题等),就可以在看得见的情况下完成界面的设计。

这种变化本身大大简化了应用程序设计,因为GUI要占到整个程序代码的80%,如果代码全部由编程者完成,工作量非常之大。另外一个激动人心的改变是,只要你掌握了编程语言,不一定是专业人员,同样可以设计出过去只有专业人员才能完成的软件!

软件是计算机的灵魂,软件或者叫做程序的开发需要技术,更需要进行有效的“构造”。构造是体系,也包括方法。采用框架结构建筑物的建设速度远比秦砖汉瓦式的方法快。若我们把软件开发也比做一个建筑过程,就能够比较容易地理解其构造及其方法的重要性。

2.面向过程和面向对象

一般说来,程序设计有面向过程和对象两种方法,本书不打算展开讨论。我们仅以VB.NET为例简单地给出一些概念,而且建议读者在学习完本书的相关内容以后再回头看看本章有关程序、程序设计、面向对象的一些解释,效果也许会更好。

(1)面向过程的编程

过程(Process)是传统的编程方法。程序按照事先设计好的顺序执行。

为了解决某一个问题,如果你使用面向过程的方法设计程序,就必须知道解决这个问题的具体“过程”。也就是说,你要把解决的问题分解为一个个可以预期的步骤,然后为每个步骤设计一个算法,并让程序按照设计好的顺序解决这些问题。过程化编程语言中的每个语言元素,要么是对数据进行操作,要么是控制下一步执行的顺序。

本书的第3~5 章介绍的顺序结构、分支结构和循环结构就是面向过程编程的。我们通常接受VB 6.0是面向对象编程语言的说法,实际上在代码设计时,沿用的技术还是面向过程的。当然,没有必要刻意去定位这段程序采用的是哪种编程技术。

(2)面向对象的编程

面向对象(Object)的编程采用与面向过程编程完全不同的方式解决问题。如果我们把数据当作对象,面向对象的程序就是要对这些数据进行的一系列操作。

在结构化编程中,数据和操作是分开的,不同的程序使用不用的数据。而在面向对象的编程中,编程者必须首先定义类(对象或称为实例的抽象)的数据和对这些数据的操作,再对其实例化,因此数据和操作是一个结合体。在这里,对象是主动的。

3.VB中的对象

1.4.1节中提及过“类”的概念,它是面向对象编程中的主要内容,由于窗体就是一个类,创建窗体Form1就是创建了一个类,我们可以用记事本打开例1-1中的Demo.vb,可以发现它的首行就是Public Class Demo1。后面还会经常使用这些类。

VB 有许多类库可以供用户使用,编程者也可以自己定义类。VB.NET 把自己定位于基于面向对象的程序设计语言。

例1-1中使用了VB的窗体和标签控件,其实标签也是类。当我们把标签添加到窗体上的时候,IDE就自动为这个“标签”类创建了一个对象,我们可以通过标签发送信息,如通过标签把发送的信息显示在屏幕上。

有时,我们不一定要注意它们是如何通过“类”进行数据操作的,只是简单运用了这些“类”。VB 成功地将这些“类”作为编程语言的一部分,因此编程者不一定要考虑类的某些更复杂的操纵技术,如类的封装、继承和多态等。本书中也尽量淡化有关结构化、过程化、对象以及看上去比较抽象的术语,这些对象仅在第16章进行介绍,本书关注发挥VB的集成特性来设计我们需要的程序。

VB 的另外一个特点是采用了“事件驱动”的编程机制。在VB中,一个对象可以产生多个事件,而每个事件通过一段程序代码(称为事件过程)响应并处理。简单地说,VB将一个按键、鼠标单击、双击等这样的操作都定义为“事件”,事件发生就触发了相应的事件过程(运行一段程序),以达到进行处理、操作的程序设计要求。

在VB中,控件就是一个对象,是一个类的实例化。本质上,VB 应用程序的实现代码仍会采用结构化和条理化编程机制,再加上面向对象的很多优势。

我们可以把VB的对象的相关概念简单归纳如下。

① 对象(Object):程序代码和数据的集合,VB中的控件都是对象。VB对象具有属性、事件和方法三个要素。

② 对象的属性(Property):对象的特征。在VB中,对象有共同的和不同的属性,我们需要熟悉它们的常用属性,如名称、标题、字体、颜色、尺寸等。

③ 事件(Event):一种动作,大多数事件都是事先预制好的,如鼠标、键盘都可以被定义为事件。VB的事件与对象关联,以事件过程(程序代码)对事件进行响应处理。

④方法(Method):对象能够执行的操作。例如,利用消息框输出一个文本信息就是一种操作,或者叫做方法。

本书第2章以后的各个章节中基本上都是围绕对象属性、事件和方法这三个要素来介绍VB编程的。