项目一 Visual Basic.NET入门
计算机语言是编制程序的工具,而执行程序是计算机的具体应用。在最底层,和硬件直接相关的是计算机的机器语言,另有一种与机器语言基本上一一对应的是汇编语言,上述两种语言统称为“低级语言”。这两种语言对于非专业人员都比较难,只有在开发任务对程序运行速度有十分高的要求时,才会选择此类计算机语言。
目前被大量使用的是计算机高级语言,相对于机器语言和汇编语言,它们具有易学、易用、易于精通的特点,而主要的缺点是运行速度不如机器语言和汇编语言程序快。
高级语言有编译执行和解释执行两类。编译型高级语言的源程序要经过该语言的编译程序编译,变成目标程序,再经过连接程序把目标程序定位到内存之后才能运行。解释型高级语言的源程序由该语言的解释程序逐条解释并逐条立即执行。
应用高级语言编制程序逐步形成了一些程序设计的方法,根据出现的先后顺序,大致可分为如下三种。
第一种是采用过程方式进行程序设计,该方法主要面向应用系统的信息流程图,利用高级语言实现软件设计流程图所描述的信息处理过程的功能。
第二种是采用模块化的程序设计,它是过程式程序设计方法的改进。结构上将软件系统划分为若干功能“模块”(Module)或“实体”(Entity),各模块按要求单独编程,再由各模块连接、组合成相应结构的软件系统。
第三种是目前广泛使用的“面向对象”(Object-Oriented)的程序设计方法。所谓“对象”是指程序中使用的“实体”或“事物”,例如窗口、菜单、命令按钮等。具体的对象往往属于具有一定属性和特征的“类”,例如窗口类就是Windows应用程序中最常见的类,它们都有属性:标题、大小、背景颜色等。利用类创建对象非常方便。对象之间往往由于某种事件(例如单击鼠标、键入字符等)而发生的相互通信、传递消息。利用这种方式描述客观世界中的各种事物及其相互关系,从而建立基于对象和消息传递的具有层次结构的编程方法。这是一种与过程式、模块化程序设计方法完全不同的方法。
随着程序设计方法的发展,高级语言也可分为面向过程和面向对象两大类,前者如:FORTRAN、COBOL、Pascal、C等语言,后者如Visual Basic、Java、C++等语言。高级语言发展的另一个趋势是所谓的说明性高级语言,它更加面向非计算机专业的软件开发人员,源程序基本上是描述性的,与人类的自然语言更加接近,例如LISP、SQL等。
常用的高级语言如下所述。
FORTRAN是最早出现的高级语言,它于1954年诞生,经多次改版、更新,目前仍在使用。FORTRAN一般被科学家用来编写大型机和小型机上的科学计算程序和工程计算程序。它的最大优点在于科学计算。
BASIC是为初学编程的人员所用的高级语言。自从1964年问世以来,出现了几种流行的版本,包括IBM-PC上的GW-BASIC和微软的QBasic。由于BASIC容易使用和适合于各种计算机系统,它已成为最流行和最广泛使用的语言之一。早期的BASIC语言大多数是解释执行的语言,是面向过程或模块的。目前的Visual Basic是综合性的、具有面向对象功能的编程语言,同时也适合于专业编程项目,尤其适合带有图形界面的事件驱动式程序设计。
COBOL是用于商业、数据管理等方面的高级语言。发展于20世纪60年代,适合于大型计算机系统上的事务处理。COBOL是编译执行的过程性高级语言,主要被一些专业程序员用来开发和维护大型商业企业的复杂程序。COBOL程序往往很长但容易读懂、调试和维护。这种特性对于大型商业组织机构尤其重要,因为许多重要的程序必须由不同的程序员维护和修改。
Pascal是第一个也是典型的模块化程序设计语言,开发于1971年。Pascal是编译执行的过程性高级语言。可以用于系统软件和应用软件的开发,较适合用于计算机程序设计的学习。
C也是编译执行的过程性高级语言,它带有低级语言的接口,这种特性给程序员带来很大的灵活性。利用这种灵活性,有经验的程序员可以使程序变得速度快、效率高。C语言适合用于系统软件的开发。C++是支持面向对象的C语言。面向对象的程序设计思维方式与过程性程序设计的思维方式迥然不同,因此,从C语言转变到C++编程的程序员,开始时往往会不太适应。
LISP和Prolog是面向人工智能应用领域的高级语言。它们是说明性高级语言,可用于开发专家系统等。它们分别开发于1960年和1971年,对于计算机在人工智能领域应用的拓展起了很大的作用。
SQL是为数据库的定义和操作开发的一种标准语言。SQL也是说明性的高级语言,只需程序员或用户对数据库中数据元素之间的关系和欲读取信息的类型予以描述。虽然数据库也可用COBOL等过程性的语言操作,但SQL语句由于更适应数据库操作而效率更高。
Java和J++以C++为基础,但它们是更适合于网络应用的面向对象的高级语言。Java和J++尤其适合生成网页上栩栩如生的图形界面以及Java应用程序,其中包含用户定制的网页控件,如按钮、复选框和文字输入框。当浏览器与包含Java和J++程序的网页连接时,计算机就会下载这段程序并执行,提高了运行的速度。Java和J++有一个很大的不同之处:Java是一种独立于开发平台的语言,这意味着Java程序不但能在PC上运行,而且可以运行在Macintosh和UNIX系统上。J++提供给程序员的工具要求有Windows的支持。使用这些工具可以编写出更快、更高效的应用程序,但它只能运行在Windows操作系统上。
JavaScript是Java的一个子集,它属于说明性语言,或称为“脚本语言”,JavaScript就像HTML标签一样是嵌入网页的。网络浏览器接收网页时会解释JavaScript的脚本。JavaScript的主要用途就是交互地生成网页。
一般情况下,每一个具体的任务可以用多种不同的编程语言来实现。当接受一个开发工程或项目时,往往会面临选择编程语言的任务,一般会根据以下问题的回答做出抉择,即
● 这种编程语言是否适合当前的任务?
● 这种语言是否具有通用性?
● 项目成员是否都熟悉这门语言?
如果这些问题的回答都是肯定的.那么这门语言对这项任务将是一个很好的选择。不断了解和掌握一些流行的、常用的语言的特性对回答第一个问题会很有帮助。
Visual Basic.NET(简称VB.NET)是Visual Studio.NET集成开发环境中的一种程序设计语言,是基于BASIC的可视化程序设计语言。Visual Basic是Windows环境下的一种简单、易学的编程语言,由于其开发程序的快速、高效,深受程序员的喜爱。严格意义上来讲,Visual Basic只是半面向对象的语言,其面向对象的能力及程序的执行效率往往不能满足一些程序员的需要。因此,大型的项目很少使用Visual Basic来开发,Visual Basic的最后一个版本是Visual Basic 6.0。在Visual Basic 6.0之后,微软公司推出了全新的.NET构架,在其第一个版本Visual Studio.NET 7.0中,集成了Visual Basic 7.0、Visual C++ 7.0及C#,其中的Visual Basic 7.0(VB 7.0)是VB.NET的第一个版本。本教程使用的是Visual Studio 2008,Visual Basic.NET继承了BASIC语言简单易学的特点,同时在其编程环境中采用了面向对象的可视化设计工具、事件驱动的编程机制、动态数据驱动等先进的软件开发技术,提供了一种所见即所得的可视化程序开发环境。
由于Visual Basic.NET集成在Visual Studio.NET之中,只需安装Visual Studio.NET,就可使用集成在其中的相应版本的Visual Basic.NET。建议安装最新版本Visual Studio 2008。第一次启动Visual Studio 2008时,将出现一个如图1-1所示的对话框(按图设置即可)。
图1-1 选择“Visual Basic开发设置”选项后启动系统
单击图1-1中的“启动Visual Studio”按钮后,屏幕显示如图1-2所示,启动完成后显示Visual Studio 2008的起始页面(如图1-3所示)。
图1-2 启动中的工作状态
图1-3 Visual Studio 2008的起始页面
在Visual Basic.NET中,运用面向对象的程序设计方法,将数据和程序封装起来,作为一个对象。在设计程序时,只要根据界面设计要求,利用系统提供的工具将对象添加到屏幕上,并设置其属性,以改变其外观。
在面向对象的程序设计中,程序的运行流程是与用户的操作顺序相符的,用户每做一个动作就会触发某个事件,从而执行相应的程序。因此,程序员只需编写响应用户动作的程序代码,而编写和维护程序工作是极为方便的。程序员编写的程序称为事件过程,其内部是运用结构化的程序设计机制,采用模块化的程序设计方法,结构清晰,易于编写和阅读程序。
Visual Basic.NET提供了强有力的数据库存取能力,可以访问多种数据库系统,完成实现数据库管理的应用程序。同时,提供了Active技术和DHTML设计工具,使得程序员可以方便地使用其他应用程序提供的功能,开发多媒体和网络应用程序。
相关语法及设计理念
一、面向对象程序设计的基本概念
Visual Basic.NET是一种面向对象的程序设计语言,它从所处理的数据入手,以数据为中心来描述系统。
1.对象和类
对象的概念是面向对象编程技术的核心。从面向对象的观点看,所有的面向对象应用程序都是由对象组合而成的。对象就是现实世界中某个客观存在的事物,是对客观事物属性及行为特征的描述。在现实生活中,人们随时随地都在和对象打交道,例如,骑的车、看的书甚至自己本身,在一个Visual Basic.NET程序员眼中都是对象。对象把事物的属性和行为封装在一起,是一个动态的概念,对象是面向对象编程的基本元素,是基本的运行实体,如窗体、各种控件等。对象是代码和数据的组合,可以作为一个单位来处理。
类是同类对象的属性和行为特征的抽象描述,类与对象是面向对象程序设计语言的基础。类是从相同类型的对象中抽象出来的一种数据类型,也可以说是所有具有相同数据结构、相同操作的对象的抽象。类具有继承性、封装性和多态性的特点,Visual Basic.NET中的每个对象都是用类定义的。对象和它的类之间就像饼干和饼干模具间的关系,饼干模具是类,它确定了每块饼干的特征,比如大小和形状,而饼干是由饼干模具创建的对象。
2.对象的属性、方法和事件
属性、方法和事件构成了对象的三个要素。属性描述了对象的性质,决定了对象的外观;方法是对象的动作,决定了对象的行为;而事件是对象的响应,决定了对象之间的联系。
(1)属性
属性是对象的物理性质,用来描述和反映对象特征的参数。一个对象的诸多属性所包含的信息,反映了这个对象的状态,属性不仅决定了对象的外观,有时也决定了对象的行为。Visual Basic.NET为每一类对象都规定了若干属性,设计中可以改变具体对象的属性值。属性可以表明一个对象的特征,比如窗体的背景颜色、高度与宽度。对象的常见属性为:名称(Name)、文本(Text)、是否可用(Enabled)、是否可见(Visible)等。
对象的属性可以在设计对象时通过属性窗口设置,也可以在程序运行时通过程序代码进行设置。在程序代码中,使用赋值语句修改对象的属性值,其格式为:
对象名.属性名 = 属性值
例如,将名称为Button1的命令按钮上的文本内容(Text)设置为“开始”值的语句是:
Button1.Text = "开始"
(2)方法
对象的方法是系统预先编写好的一些通用的过程和函数,供用户直接调用。方法是附属于对象的行为和动作,不同的对象有不同的方法,调用时一般要指明对象。方法的调用格式为:
[对象名.]方法名([参数列表])
例如,将光标放到TextBox1文本框中,对应的方法为:
TextBox1.Focus()
(3)事件
事件是能够被对象识别和响应的行为和动作。当对象上发生了事件后,应用程序要做相应的处理,对应的程序称为事件过程。Visual Basic.NET应用程序设计的主要工作就是为对象编写事件过程的程序代码。
定义事件过程的语句格式为:
Private Sub对象名_事件名(对象引用,事件信息)Handles事件处理程序 ……处理事件的代码…… End Sub
例如,单击(Click)名称为Button1的命令按钮,结束程序的运行,对应的事件过程为:
Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.Click End End Sub
注:在代码窗口中,选择对象和事件后自动产生事件过程的模板,以“Private Sub”开头、以“End Sub”结束,只需输入它们之间处理事件的代码(上例中只需要输入“End”一行)。
在Visual Basic.NET中,每个对象都有一个预定义的事件集,一些事件是多数对象所共有的,例如窗体、文本框、按钮等都有单击事件(Click)。
当用户对一个对象做出一个动作时,可能同时在这个对象上发生多个事件。例如,双击鼠标,同时发生了Click、DblClick、MouseDown、MouseUp事件。编写程序时,只需对事件发生后要做出相应处理的事件编写程序,对于没有编码的事件过程,系统则不对该事件做处理。
在传统的面向过程的应用程序中,程序是按设计人员编写的代码次序执行的,用户无法改变程序的执行流程。而执行VB应用程序时,系统装载和显示窗体后,等待某个事件的发生,然后去执行相应的事件过程,待事件过程执行完后,又处于等待状态,直到程序结束。这称为事件驱动的程序设计方式。这些事件发生的顺序决定了代码执行的顺序,因此每次执行流程都可能不同。