类模块问题

enaking 2004-04-19 01:02:19
我在VB学了很久了,但没有真正去看过类模块的资料,有时看到一些实例用了它,我就是不知道它到底有什么作用,哪种情况下会用它,谢谢各位大侠
...全文
141 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
enaking 2004-04-27
  • 打赏
  • 举报
回复
谢谢
eyecao 2004-04-24
  • 打赏
  • 举报
回复
既然说不清楚,那我就直接贴些 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里,就可以看得到了!
Ninputer 2004-04-23
  • 打赏
  • 举报
回复
如果不理解类模块,就无法理解封装性,那么转到VB以后的版本就会很困难。
enaking 2004-04-23
  • 打赏
  • 举报
回复
Ninputer(装配脑袋) 能说清楚的吗,很多书咱个就没有说这方面的呢
limitworld 2004-04-22
  • 打赏
  • 举报
回复
就象 interaction app 可能就是公共类
wxrwan 2004-04-22
  • 打赏
  • 举报
回复
up
leogon 2004-04-22
  • 打赏
  • 举报
回复
up
ryuginka 2004-04-20
  • 打赏
  • 举报
回复
up
enaking 2004-04-20
  • 打赏
  • 举报
回复
eyecao(小强) :VB的公共模块又指的什么呢,举例说下嘛,因为我没看到,或者看到了没注意,类模块与模块又有什么区别呢,
ryuginka 2004-04-19
  • 打赏
  • 举报
回复
还有,具体的说,你在编程时候,比如经常用到的方法等等,你可以做成类
Ninputer 2004-04-19
  • 打赏
  • 举报
回复
类模块就是类,是封装性的来源,是面向对象的基础
eyecao 2004-04-19
  • 打赏
  • 举报
回复
简单说一下:

1、类模块与公共模块的作用相同
2、类模块必须要先在程序里进行引用,然后才可以使用;而公共模块则不须要进行引用,就可以直接引用
3、类模块是集结了公共模块中具有相同的方法或属性的模块内容:
例如:要写一些车辆的运动.
1、做成公共模块:可以把这些车辆的前进、后退、颜色、价格等,写在一个公共模块里,相应地,该模块就会变得很大,并且令可使用的模块内容繁杂。
2、做成类模块:因为每部车辆都有前进和后退的动作,所以可以把这两个动作写在一个类模块里,然后在定义每辆车的运动时调动该类模块,其它依此类推。由此,可以看到,类模块可以把公共模块的内容进行分类,使模块的内容和作用更清晰


以上是小弟的一些见解,如有不对,敬请指出!

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧