当前位置:编程学习 > VB >>

VB.NET中的面向对象编程特征(1)

 

 

Visual Basic 7也被称作VB.NET,具备了面向对象(OOP)编程语言的所有特征。对于VB编程人员来说,面向对象的概念和面向对象编程方式都不陌生。

如果问一个面向对象程序设计高手什么是面向对象程序设计语言?他可能会说出一大堆诸如类、接口、消息隐匿、封装、继承、多态性这样的名词,这些名词听起来都很酷,不是吗?但面向对象编程并非通过一两天的学习或听一次课就能掌握的。要真正地掌握面向对象程序设计,不但需要掌握一定的理论知识,同时还要进行一些实际的编程练习。本文探讨了在VB.NET中运用面向对象原理编程的基本方法,全面论述VB.NET中面向对象编程的知识已经超出本文的范围。

 

面向对象编程的优点

不知道读者是否考虑过为什么现代程序设计语言会向面向对象编程靠拢?C++、JAVA为什么这么普及?这是因为面向对象编程具备了几个优点,比如:代码维护方便、可扩展性好、支持代码重用技术等等。这些优点是过程编程语言所不具备的。下面我们就来谈谈面向对象技术的这些优点:

维护简单

模块化是面向对象编程中的一个特征。实体被表示为类和同一名字空间中具有相同功能的类,我们可以在名字空间中添加一个类而不会影响该名字空间的其他成员。

可扩充性

面向对象编程从本质上支持扩充性。如果有一个具有某种功能的类,就可以很快地扩充这个类,创建一个具有扩充的功能的类。

代码重用

由于功能是被封装在类中的,并且类是作为一个独立实体而存在的,提供一个类库就非常简单了。事实上,任何一个.NET Framework编程语言的程序员都可以使用.NET Framework类库,.NET Framework类库提供了很多的功能。更令人高兴的是,我们可以通过提供符合需求的类来扩充这些功能。

下面我们最简单的特性开始来论述面向对象编程的一些特性。

在面向对象编程技术中,类是重点中的重点。简单地说,类是一种提供一定功能的数据类型。在VB.NET中定义一个类要用到关键字Class,例如,下面的一小段代码就定义一个名字为Employee的类:

 

Employee类

Class Employee

End Class

 

 

定义一个类就是这么简单。注意,在对类命名时,微软推荐使用Pascal语言的命名规则。根据这种命名规则,就意味着类名的第一个字母必须大写,并且后面的并发连结词的第一个字母均为大写,例如象GeneralManager、SmallDictionary、StringUtil都是合乎这种规则的类名。

 

类成员

一个类有象域、属性、子程序和函数这些成员,例如,下面的employee类中有一个名字为work的子程序:

 

包含Work方法的Employee类

Class Employee

Public Sub Work ()

Do something here

End Sub

End Class

 

 

子程序和函数都被称为方法,方法的命名也遵循Pascal语言的命名规则。

另一种类成员是域。域的命名法则遵循camel规则,即除第一个子串外的所有子串的第一个字母大写。象salary 和quarterlyBonus都是符合规则的域名。下面的代码在Employee类中添加了salary和quarterlyBonus这二个域:

 

增加了二个域的Employee类

Class Employee

Dim salary As Decimal = 40000

Dim yearlyBonus As Decimal = 4000

 

Public Sub PrintSalary()

print the salary to the Console

System.Console.Write(salary)

End Sub

 

End Class

 

Module Module1

Public Sub Main()

 

Dim anEmployee As Employee

anEmployee = New Employee()

anEmployee.PrintSalary()

 

End Sub

End Module

 

 

上述代码段中的Module1模块中提供了子程序的Main函数,这也是VB.NET程序开始的地方。要编译源程序,就必须用一种或另一种方式提供访问Main Sub的途径。

如果你使用的不是Visual Studio.NET,那么可以使用vbc.exe软件编译VB.NET源程序,vbc.exe 是在安装.NET Framework时自动安装的。例如,当你把源代码保存为Employee.vb文件后,在Employee.vb所在的目录下,输入vbc Employee.vb即可编译该源程序。

现在我们再来看看上面的代码,子程序的Main函数首先定义了一个Employee类型的变量━━anEmployee:

Dim anEmployee As Employee

然后使用关健词New对Employee进行初始化:

anEmployee = New Employee()

这样,我们就得到了一个Employee类型的变量,我们就可以使用它的功能了(福特汽车公司的工程师生产出汽车后,我们就可以启动并驾驶它了。)。在我们的例子中,可以使用下面的方法调用PrintSalary方法:

anEmployee.PrintSalary()

这一方法会打印Employee中salary变量的值。

当然,我们也可以将子程序的Main函数移到类的定义中去,这样就无需再使用模块了。下面的代码即演示了这种方法:

子程序的Main函数在类的定义中

Class Employee

 

Dim salary As Decimal =

补充:软件开发 , Vb ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,