ddc
联网
平面设计 画册 VI欣赏 包装 CG-插画 搜索 个人网页 Alexa排名 CSS 建站资源 下载专区 JS特效 品牌服装 服装院校 专题欣赏 SEO 图标欣赏 专题
网站建设 域名注册 网站建设 虚拟主机 广州网站设计 域名注册 广州网站建设 上海网站建设 虚拟主机 广州网页设计 虚拟主机 域名注册 acg王国 ACG玩家 品牌设计 上海网站建设
求创科技
网站建设
中国互联
素材出售
中国设计秀
中资源
当前位置:网络学院首页 >> 编程开发 >> .net >> 解析VB.NET中的面向对象编程特征

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

来源:中国设计秀    作者:perfume    点击:133     加入收藏    发表评论
0
顶一下
关键字:.net

       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 = 40000

    Dim yearlyBonus As Decimal = 4000

    Public Sub PrintSalary()

    ' print the salary to the Console

    System.Console.Write(salary)

    End Sub

    Public Shared Sub Main()

    Dim employee As Employee

    employee = New Employee()

    employee.PrintSalary()

    End Sub

    End Class

    注释:PrintSalary方法中的System.Console.Write表示我们调用了Console类中的Write方法,而Console类又是System名字空间的一部分。关于名字空间的要领将在下面的部分讨论:

  名字空间

    在编写.NET软件时,我们会用到类和其他类型。为了使应用程序更有条理性,可以将类组合为名字空间,微软的.NET Framework类库就是这样的。如果打开.NET Framework SDK文档中的.NET Framework Class Library,会看到其中有80多个名字空间,需要经常乃至的重要的名字空间包括System、System.IO、System.Drawing、System.Windows.Forms等。例如,在Employee类的PrintSalary方法中,我们就使用了System名字空间中的Console类。

    如果要在程序中使用名字空间,可以首先导入它,以便在以后每次使用其成员时无需重复该名字空间的名字。例如:可以将表4、5中的代码改写为下面表6中形式:

    导入名字空间

    Imports System

    Class Employee

    Dim salary As Decimal = 40000

    Dim yearlyBonus As Decimal = 4000

    Public Sub PrintSalary()

    ' print the salary to the Console

    Console.Write(salary)

    End Sub

    Public Shared Sub Main()

    Dim employee As Employee

    employee = New Employee()

    employee.PrintSalary()

    End Sub

    End Class

    好了,我们现在就可以在PrintSalary方法使用Console类而无需引用名字空间,因为我们已经导入这个名字空间了。

    我们还可以在不同的名字空间中拥有相同名字的类。要正确地使用一个类,通常的做法是在一个类的前面使用名字空间的名字。例如,可以以System.Console的方式使用System名字空间中的Console类。

  访问类型

    在很多情况下,我们都会将编写好的类提供给别人,供他们使用它提供的功能,例如,他们可以调用类的一个方法或者访问其中的一个域。面向对象编程的一个最大的好处是开发人员可以方便地控制对类成员的访问,这意味着我们可以完全控制想让别人使用的部分。我们可以使一个方法可以被别的开发人员使用,也可以使一个类成员只能在该类中被访问。   在VB.NET中,访问是分等级的。下面我们来讨论这些等级:

    pPublic:Public类成员没有访问限制。在一个类成员前面添加Public关健字就使得它可以被随意访问。例如,Employee类中的PrintSalary方法就是一个public方法,可以从任何地方对它进行访问。

 

[1] [2] [3]
2008-09-24 10:24:00    出处:中国设计秀cnwebshow.com
Google
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明 | 网站公告 | 友情链接 | 留言 | 旧版入口