我在VB学了很久了,但没有真正去看过类模块的资料,有时看到一些实例用了它,我就是不知道它到底有什么作用,哪种情况下会用它,谢谢各位大侠

解决方案 »

  1.   

    eyecao(小强) :VB的公共模块又指的什么呢,举例说下嘛,因为我没看到,或者看到了没注意,类模块与模块又有什么区别呢,
      

  2.   

    就象 interaction app 可能就是公共类
      

  3.   

    Ninputer(装配脑袋) 能说清楚的吗,很多书咱个就没有说这方面的呢
      

  4.   

    既然说不清楚,那我就直接贴些 MSDN 的文档里的一些关于类,这方面的说明,由于文章太长,只贴部分,以供参考!
    ————————————————————————————————————————类:对象的蓝图请参见
    创建和使用对象 | 结构和类 | 继承 | 继承的基础知识 | 共享成员 | 隐藏 | Shadows | Shared
    类是对象的符号表示形式。与蓝图描述构成建筑的项一样,类以同样的方式描述组成对象的属性、字段、方法和事件。就像一副蓝图可以用于建成多座建筑一样,一个类也可以用于根据需要创建多个对象。就像蓝图定义使用建筑的人可以访问建筑的哪些部分一样,类也可以通过封装来控制用户对对象项的访问。类和对象
    “类”和“对象”这两个术语有时互换使用,但实际上,类描述对象的“结构”,而对象则是类的可用“实例”。每个实例都是其类的一个精确而又不同的副本。由于对象是类的一个“实例”,所以创建对象的动作就称为“实例化”。使用蓝图类比,类是蓝图,对象就是基于该蓝图的建筑。大部分情况下,更改一个对象中的数据并不会更改其他任何对象中的数据。(“共享成员”(即用 Shared 修饰符声明的类成员)例外,它们独立于类的特定实例存在。)封装
    “封装”是包含和控制访问一组关联项的能力。类提供一个最通用的方式来封装项。在下面的示例中,BankAccount 类封装描述银行帐户的方法、字段和属性。如果没有封装,您就需要声明单独的过程和变量来存储和管理银行帐户信息,要一次处理多个银行帐户就会比较困难。封装使您可以将 BankAccount 类中的数据和过程作为一个单元来使用。您可以同时处理多个银行帐户而不会混淆,因为每个帐户都由该类的一个唯一实例来表示。封装还使您可以控制如何使用数据和过程。可以使用访问修饰符(如 Private 或 Protected)来防止外部过程执行类方法或读取与修改属性和字段中的数据。应当将类的内部详细信息声明为 Private 以防止在类外使用它们,此技术称为“数据隐藏”。在 BankAccount 类中,客户信息(如帐户余额)就是用这种方式保护的。封装的一个基本规则是类数据应当只能通过 Property 过程或方法来修改或检索。隐藏类的实现详细信息可以防止这些信息被以不希望的方式使用,并使您可以在以后修改此类项时没有兼容性问题方面的风险。例如,下面所列的 BankAccount 类的更高版本就可以更改 AccountBalance 字段的数据类型,而没有破坏依赖于此字段拥有特定数据类型的应用程序的危险。继承
    与 Visual Basic .NET 的结构类似,类使您可以定义封装一组相关项的数据类型。然而与结构不同的是,Visual Basic .NET 类可以继承和扩展其他类的特性。作为新类的基础的类称为“基类”。从基类派生的类称为“派生类”。派生类继承基类中定义的所有字段、属性、方法和事件。这就意味着可以开发和调试类一次,然后将其作为其他类的基础重复使用。————————————————————————————————————————类与标准模块请参见
    了解类 | 结构和类 | 共享成员 | 实现组件功能的方法 | Shared
    类和模块均是封装在它们中定义的项的引用类型,但它们在从其他过程如何访问这些项上有所不同。类和模块之间的主要差异在于类可以实例化而标准模块不能。因为标准模块的数据不会有多个副本,所以当程序的一部分更改标准模块中的一个公共变量时,如果程序的其他任何部分随后读取该变量,则都会获取同样的值。另一方面,类数据对于每个实例化的对象都是独立存在的。另一个不同在于:不像标准模块,类可以实现接口。类和模块对它们的成员使用不同的范围。在类中定义的成员其作用范围在类的特定实例内,并且只存在于对象的生存期内。实际结果是,若要从类外访问类成员,则必须只能使用完全限定名,例如 Object.Member。另一方面,在标准模块内声明的成员在默认情况下是共享的,其作用范围是标准模块的包含命名空间的声明空间。这意味着标准模块中的公共变量是有效的全局变量,因为它们在项目中的任何地方均可见,且存在于程序的整个生存期。不像类成员,标准模块成员是隐式共享的并且不能使用 Shared 关键字。以上是有关类的部分内容,详细的内容请参考 MSDN 文章里的:
    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vbcn7/html/vbconCreatingYourOwnClasses.htm只要把这段贴到 .NET 文档资源管理器的URL里,就可以看得到了!