类和模块

      昨天把ArcSDE配置好了,今天写AE连接ArcSDE的程序时,看到有人说把连接的程序放在一个新建的模块中,也有说放在类里面。忽然发现我对类和模块的作用以及应用并不了解。虽然之前也用过模块,主要是定义一个Public的模块变量。没有用过类,在时间右键功能时,接触过,不过并没有去用。

      面向对象有三个基本特征:封装、继承和多态。四种核心技术:分类、概括、联合、聚集。类是将对象的属性和方法封装起来,使用时是通过对类实例化来进行操作的。类可以封装、继承,面向对象才会有类。以下是摘自网上的http://syue.com/Software/NET/ASPNET/5089.html

      每当创建类的实例时,如果该对象中存在名为 New 的过程,则公共语言运行库 (CLR) 尝试执行它。New 是一种称为“构造函数”的过程,该构造函数用于在对象中的任何其他代码执行之前初始化新对象。New 构造函数可用于打开文件、连接到数据库、初始化变量以及处理任何需要在可使用对象前完成的其他任务。

       当创建派生类的实例时,基类的 Sub New 构造函数首先执行,然后执行派生类中的构造函数。这是因为 Sub New 构造函数中的第一行代码使用语法 MyBase.New() 调用类层次结构中该类本身紧上面的类的构造函数。然后调用该类层次结构中每个类的 Sub New 构造函数,直到到达基类的构造函数。此时,基类构造函数中的代码执行,接着执行所有派生类中每个构造函数的代码,最后执行最相近派生的类中的代码。

        当不再需要某对象时,CLR 调用该对象的 Finalize 方法,然后释放其内存。Finalize 方法称为“析构函数”,因为它执行清理任务,如保存状态信息、关闭文件和与数据库的连接,以及执行在释放对象前必须完成的其他任务。

       当调用派生类的 Sub Finalize 方法时,首先执行所需的任何清理任务,然后使用语法 MyBase.Finalize() 显式调用其基类的 Sub Finalize 方法。因此,Sub Finalize 方法首先从最相近派生的类开始运行,最后执行基类中的代码。

 

模块:公用的静态变量和方法放在模块中,模块是不能进行实例化的。或者说,是存储全局变量和全局方法的东西。

原文地址:https://www.cnblogs.com/beileierhao/p/2503892.html