共享或类成员
随着对象的功能越来越强大,我们有时想访问一些变量、函数或者程序而不需要一个实际的对象实例。在以前,我们可以键入这类型的代码到一个代码模块中,而不管程序是否跟一些类有关。
共享方法
在vb.net中我们有了一个较好的改变。不仅一个类可以拥有所有正常的方法和属性(这些方法和属性可以由创建类的实例来实现)而且它们可以拥有一些不需要创建类的实例的方法,这些方法就是本教程要介绍的共享方法。这些方法在其它的编程语言中也称为静态方法或者类方法。
一个共享方法不能作为一种普通的方法,通过一个对象的实例来访问,而是可以从类直接访问。下面是共享方法的一个简单的例子:
public class math
shared function add(byval a as integer, byval b as integer) as integer
return a + b
end function
end class
我们可以不用实例化一个math对象,就可以访问,代码如下:
dim result as integer
result = math.add(5, 10)
现在请再仔细看看,这里我们不是使用一个变量,而是直接使用类的方法。如果用通常的方法就将导致错误,但是利用了共享方法一切都变得可以接受了。
共享方法不仅可以通过通常的方法来访问而且可以在不需要创建一个对象的条件下提供访问的功能。实际上,当一个共享方法被调用的时候,没有任何对象被创建,它就象再模块中的一个程序可以直接被调用。
共享方法和其它普通的方法一样也可以被重载,所以可以利用相同的共享方法来创建一系列变化的方法,每一种方法有不同的参数列表。
共享方法的缺省的辖域是public。我们也可以载声明中将共享方法设置为friend、protected或者private。实际上,当重载方法的时候,只要参数列表不同我们就有不同的作用域。
究竟共享方法是如何使用的呢,下面我们看看一个例子。当我们想为输入打开一个文本文件的时候,我们可以在file类中使用一个共享代码,如下:
dim infile as streamreader = file.opentext(words.txt)
dim strin as string
str = infile.readline()
这里没有任何的类型的文件被创建。opentext方法是一个共享方法,它打开一个文件并且返回一个streamreader对象。另外一个例子来自system.guid数据类型。这个类描述了一个全局的独特的用户id(guid)数值,但是我们可以通过一个共享方法来创建一个新的方法。
dim guidid as guid()
guidid = guid.newguid()
这个newguid方法是直接从guid类中调用的。它创建了一个新的guid对象并且返回一个数值。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器