第二章:VB.NET面向对象——对象和类,预定义对象和类

Visual Basic.NET中有各种对象,包括窗体、控件等,这些对象是由Visual Basic.NET系统提供的,称为预定义对象。它们由系统建立,用户可以直接使用,但不能进行修改。当用Visual Basic.net建立应用程序时,就是在使用对象进行操作。

<一> 预定义对象和类

对象是一组代码和数据的封装体,可以看作是一个整体处理单元。一个对象可以是应用程序的一部分,如控件和窗体,整个应用程序也可以是一个对象。窗体上的控件,如按钮、图片框等都是对象。在一个项目中,每个窗体是一个独立的对象。一个数据库可以看作是一个对象,并含有其它对象,如字段和索引。

Visual Basic.NET中的每个对象都是用类定义的。工具箱中的每个控件都是一个类,在窗体上画出一个控件之前,以该控件命名的对象是不存在的。建立一个控件后,就是建立了该控件类的一个拷贝或实例,类的这个实例是在应用程序中引用的对象。在设计阶段所操作的窗体是一个类;在运行阶段,Visual Basic.NET建立窗体类的一个实例。

在Visual Basic.NET应用程序中,属性窗口显示了对象的类和名称属性。例如,在窗体上画一个按钮控件Button1,它是控件类Button的一个实例,即对象,此时可以在属性窗口中显示该对象的类和名称。

所有对象都是作为它们的类的相同拷贝建立的。一旦它作为个别的对象存在,就可以改变它的属性。例如,假定在窗体上画三个按钮,则每个按钮就是按钮类(Button)的一个实例,即该类的一个对象,每个对象共享一组由类定义的通用的特性和功能(属性、方法和事件)但是,每个对象有它自己的名字、可以打开和关闭、可以放到窗体的不同地方,等等。

为了简单起见,在一般情况下,都不指明对象的类,而是称为“XX控件”。例如,用户可以建立自己的打开文件和保存文件对话框,但不必实际编写代码,而是通过由Visual Basic.net提供的通用对话框控件OpenFileDialog和SaveFileDialog实现。

<二> 对象的操作

每个对象都有自己的属性、事件和方法。事件是由对象识别的操作,如单击鼠标或按一个键,可以通过程序代码响应一个事件。

一个对象的特性可以通过它的属性来设置。例如,音量是收音机的一个特性,在Visual Basic.NET中,可以说收音机有“音量”属性,通过改变它的值可以对这个属性进行调整:

Radio.Volume=5

除属性外,对象还有方法。和属性一样,方法也是对象一部分,它是要执行的操作。例如,拨号打电话,可以说电话具有“拨号”方法,并可以用这个方法拨打8位号码66553322。

1.用属性控制对象

每个属性随时设置或取得的值而变化,有些属性可以在设计阶段设置,即通过属性窗口设置这些属性的值,不需要编写程序代码。而有些属性不能在设计阶段设置,必须编写代码以在运行时设置这些属性。

在运行时可以设置和获取的属性称为读写(Read-Write)属性,而在运行时只能读的属性称为只读(Read-only)属性,只读属性只能在设计阶段设置,在运行期间不能改变。

设置属性值是为了改变对象的外观和特性。例如,为了改变广西框的显示内容,只要设置文本框控件的Text属性即可实现。属性设置的一般格式如下:

对象.属性=表达式

例如:

TextBox1.Visaul=true

TextBox.Text=”Love”

有时候,可能需要获取指定对象的一个属性值,格式如下:

变量=对象.属性

例如:

B=TextBox1.Visual

也可以作为较复杂的表达式的一部分获取属性值,而不是把属性值赋给一个变量。例如:

Button1.Width+=2

在该例中,按钮控件的Width属性是根据原来的属性计算出来的,即加上20。

2.用方法执行操作

方法通常在代码中使用,其格式由方法所需要的参数、方法是否返回值来决定。当方法不返回值时,格式如下:

对象.方法(参数表列)

例如:

PictureBox1.Refresh ()

用Refresh方法重画图片框。访方法没有参数,也不返回值。有的方法需要参数,例如:

ListBox1.Items.Add (“放飞”)

如果方法需要的参数多于一个,则各参数要用逗号隔开。

3.对一个对象执行多个操作

有时候需要对一个对象执行几个不同的操作。例如,可能要对同一个对象设置几个属性,这可以通过多个语句来实现:

Button1.Text=”OK”

Button1.Visual=True

Button1.Top=20

Button1.Left=50

Button1.Enable=True

在该例中,所有属性都是对同一个对象Button1设置的。如果使用With…End With语句,则可使上述代码更容易写、更容易读,而且效率更高:

With Button1

.Text=”OK”

.Visual=True

.Top=20

.Left=50

.Enable=True

End With

With语句可以嵌套。

4.对象的默认属性

许多对象都有默认属性,用默认属性可以简化代码,因为当设置其属性时,不必给出属性的名字。在Visual Basic 6.0中,控件一般有默认属性,在Viual Basic.NET中取消了控件的默认属性。但是,在建立自己的类时,可以定义默认属性。