请问:如何创建 孙类 实例?谢谢!

mansohu 2017-04-05 12:27:27
请问:如何创建 孙类 实例?谢谢!
类模块1:父类s 父类集合
类模块2:父类 父类
类模块3:子类s 子类集合
类模块4:子类 子类
类模块5:孙类s 孙类集合
类模块6:孙类 孙类

我在 父类s 的 Add 过程中:
public Fucntion Add
Dim 子 As 子类
Set 子 = 子类

’我想在创建子类实例时,默认的在 新创建的子类实例 里创建一个 孙的实例, 应该怎么做呢? 即怎么实现 set 孙 = 子.孙类s.add ?
end Fucntion

我是业余选手,已经先晕了,不知道说清楚没有啊,先谢谢啦!
...全文
250 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-04-06
  • 打赏
  • 举报
回复
用对象编程 对象是 Visual Basic 程序设计的核心。窗体和控件都是对象。数据库也是对象。到处都有对象存在。 如果曾经使用过 Visual Basic,或着使用过本书前五章中的示例,那么就已用对象进行过程序设计了,但是有比至今所知道的对象更多的对象。 在本章中,能接受用户个性的用户定义类型变成类。将会看到,从已定义的类中创建自己的对象非常容易,而且使用对象能简化编码,并增强代码的重用。 主题 Visual Basic 中的对象 回顾用在对象的创建、使用和讲解中的正确的术语。介绍集合对象、With 语句和使用对象的其它方法。 查找对象信息 介绍如何使用对象浏览器查看对象的属性、方法和事件,如何在工程和库中查找事项,并给自己的对象添加说明。 创建自己的类 建立类很容易,可能会惊讶的发现自己已经建立过类了。循序渐进的过程介绍对象的创建和存活期的内容。 向类中添加属性和方法 介绍如何使用属性过程以创建能被赋予有效值的属性,展示如何创建许多不同类型的属性。 向类中添加事件 自己的对象能引发在窗体或其它对象中处理的事件。 命名属性、方法和事件 遵从一些简单规则能使自己的对象更易于使用、重用和共享。 创建数据识别类 使得绑定对象到一个数据库或其他得数据源很容易。类既可以作为数据源,也可以作为数据使用者。 多态 能够把恐龙和跳蚤两者都做为动物对待,是很有用的。通过多个界面,可以做到这一点,它也提供了展开程序的新方法。 用自己的对象编程 对象一旦创建,如何把它们加入到程序中,跟踪它们以及在使用之后的处理等问题? 对象模型 从自己的类所创建的对象与其它对象的关系如何?对象模型表示了对象包含其它对象的方法,这是有关程序的强大的结构化原理。 创建自己的集合类 介绍使用 Visual Basic 集合对象的一些限制,展示如何创建自己的集合类。 ActiveX 设计器 设计器将“可视化”引入 Visual Basic。已经使用过了窗体设计器,但是在 ActiveX 设计器方面还有一个全新的领域。 到此并没有结束。下一步是“使用部件的程序设计”,它介绍如何使用 Visual Basic 控制其它应用程序所提供的对象。 示例应用程序 ProgWOb.vbg 本章的一些代码示例来自“使用对象的程序设计”(ProgWOb.vbg) 和数据识别类 (Dataware.vbp) 示例。它们在示例目录中。
赵4老师 2017-04-06
  • 打赏
  • 举报
回复
赵4老师 2017-04-06
  • 打赏
  • 举报
回复
默认构造函数? 创建对象 创建对象的最简单方法是在“工具箱”中双击控件。但是,对 Visual Basic 中的所有可用对象以及来自其它应用程序的所有可用对象,要想充分体现它们的优势,可在运行时用 Visual Basic 的可编程性能创立对象。 用对象变量创建对象引用。 用类模块“从零开始”创建自己的对象。 用集合对象创建自己的集合。 详细信息 其它章节会介绍如何访问对象。例如,在“用部件编程”中将讨论 CreateObject 和 GetObject 函数。 使用对象变量 除了存储值以外,变量可引用对象。如同给变量赋值一样,基于下列相同理由,可把对象赋给变量: 变量名往往比变量所含的值(或者,在此情况下,所含值就是它们引用的对象)短而好记。 在运行代码时,为了引用其它对象,应改变变量。 引用包含对象的变量比反复引用对象本身有更高的效率。 使用对象变量与使用常规变量一样,只不过多了把对象赋予变量这一步: 首先声明变量: Dim variable As class 然后把对象赋予变量: Set variable = object 声明对象变量 声明对象变量的方法和声明其它变量一样,要用 Dim、ReDim、Static、Private 和 Public。仅有的不同在于可选的 New 关键字和 Class 参数,本章后面将会对 New 关键字和 Class 参数都作介绍。语法是: {Dim | ReDim | Static | Private | Public} variable As [New] class 例如,可以声明一个对象变量,它引用应用程序中的被称做 frmMain 的窗体: Dim FormVar As New frmMain '声明一个类型为 frmMain '的对象变量。 也可以声明一个对象变量,它引用应用程序中的任何窗体: Dim anyForm As Form '一般窗体变量。 类似地,可以声明一个对象变量,它能够引用应用程序中的任何文本框: Dim anyText As TextBox '可以引用任何文本框 '(但只能是一个文本框)。 还可以声明一个对象变量,它能够引用任何类型的控件: Dim anyControl As Control '一般控件变量。 注意,可以声明一个引用应用程序中的指定窗体的窗体变量,但不能声明引用特定控件的控件变量。可以声明能够引用控件的特定类型(如 TextBox 或列表框)的控件变量,但不是引用那种类型的一个特定控件(如 txtEntry 或 List1)。但是,可把特定的控件赋予那种类型的变量。例如,对于具有列表框 lstSample 的窗体可以这样编码: Dim objDemo As ListBox Set objDemo = lstSample 赋值对象变量 用 Set 语句将对象赋予对象变量: Set variable = object 无论何时,只要希望对象变量引用对象,就可使用 Set 语句。 有时可用对象变量,尤其可用控件变量直接缩短要键入的代码。例如,原来的代码是这样的: If frmAccountDisplay!txtAccountBalance.Text < 0 Then frmAccountDisplay!txtAccountBalance.BackColor = 0 frmAccountDisplay!txtAccountBalance.ForeColor = 255 End If 如果使用控件变量,程序就可显著缩短: Dim Bal As TextBox Set Bal = frmAccountDisplay!txtAccountBalance If Bal.Text < 0 Then Bal.BackColor = 0 Bal.ForeColor = 255 End If 特定对象类型与一般对象类型 特定的对象变量必须引用特定类型的对象或类。特定的窗体变量只能引用应用程序中的一个窗体(尽管可在该窗体的诸多实例中引用其中之一)。与此相似,特定的控件变量只能引用应用程序中的特定类型的控件,比如 TextBox 或者列表框。请看一例,打开新的工程,在窗体中放置一文本框。将下列代码添加到窗体中: Private Sub Form_Click () Dim anyText As TextBox Set anyText = Text1 anyText.Text = "Hello" End Sub 运行应用程序并单击窗体。文本框的 Text 属性将变成 "Hello"。 一般对象变量可在多种特定对象类型中引用其中一种。例如,一般窗体变量可引用应用程序中的任何窗体;一般控件变量可引用应用程序中任何窗体上的任何控件。请看一例,打开新的工程并在窗体中按任意顺序放置若干 Frame、Label 和 CommandButton 控件。将下列代码添加到窗体中: Private Sub Form_Click () Dim anyControl As Control Set anyControl = Form1.Controls (3) anyControl.Caption = "Hello" End Sub 运行程序并单击窗体。刚才放入窗体中的第三个控件的标题将变成 "Hello"。 Visual Basic 中有四种一般对象: 一般对象类型 可引用的对象 Form 应用程序中的任何窗体(包括 MDI 子窗体和 MDI 窗体)。 Control 应用程序中的任何控件。 MDIForm 应用程序中的 MDI 窗体(如果应用程序有 MDI 窗体的话)。 Object 任何对象。 在不知道变量运行时是否引用特定类型的对象时,一般对象变量是很有用的。例如,如果要书写代码,并使之在应用程序的任何窗体中都可操作,则必须使用一般窗体变量。 注意 由于应用程序中只能有一个 MDI 窗体,因此不必使用一般的 MDIForm 类型。无论何时,一旦需要声明引用 MDI 窗体的窗体变量,就可用特定的 MDIForm 类型(或者是 MDIForm1,或者是对 MDI 窗体的 Name 属性指定的任何名称),而不用一般的 MDIForm 类型。实际上,由于在运行应用程序前,Visual Basic 就能够决定引用特定窗体类型的属性和方法,因此总应使用特定的 MDIForm 类型。 只是出于完整性的考虑才提供一般的 MDIForm 类型;在 Visual Basic 的今后版本中,单个应用程序中可以拥有多个 MDI 窗体,这将是非常有用的。 作为对象的窗体 窗体最常用到的是构造应用程序界面,但也常常是应用程序中其它模块调用的对象。窗体与类模块关系密切。两者之间的主要区别在于,窗体是可视对象,而类模块却没有可视界面。 添加自定义方法和属性 可对窗体添加自定义方法和属性,并可从应用程序中的其它模块访问它们。为了创建窗体的新方法,请添加用 Public 声明的过程。 '自定义 Form1 的方法。 Public Sub LateJobsCount () . . ' <me> . End Sub 可用下面这个语句从其它模块调用 LateJobsCount 过程: Form1.LateJobsCount 创建窗体的新属性就象在窗体模块中声明一个公用变量那样简单: Public IDNumber As Integer 可用下面两个语句从其它模块设置和返回 Form1 的 IDNumber 值: Form1.IDNumber = 3 Text1.Text = Form1.IDNumber 也可用 Property 过程向窗体添加自定义属性。 详细信息 “用对象编程”提供了 Property 过程的详细材料。 注意 不必加载窗体就可调用窗体的变量或自定义方法,还可设置窗体的自定义属性。于是,不必将窗体加载到内存就可运行有关窗体的代码。同样,引用控件而不引用其属性或方法时也不会加载窗体。 使用 New 关键字 用 New 关键字创建新对象,这个对象被视为它的类所定义的对象。可用 New 创建集合、窗体的实例以及类模块中定义的类。 在窗体上使用 New 关键字 在设计时创建的窗体是类。可用 New 关键字创建这个类的新实例。为了看到这一工作过程,请在窗体上画出一个命令按钮和其它几个控件。在“属性”窗口中将窗体的 Name 属性设置成 Sample。在命令按钮的 Click 事件过程中添加下列代码: Dim x As New Sample x.Show 运行应用程序,并单击命令按钮数次。把最前面的窗体移到一边。因为窗体是具有可视界面的类,所以可看到附加副本。每个窗体在相同位置上都有相同控件,而且这些位置也正是窗体在设计时的位置。 注意 要使窗体变量和已加载窗体的实例一直存在,请用 Static 或 Public 变量,而不要用局部变量。 也可将 New 关键字与 Set 语句并用。请试用命令按钮的 Click 事件过程中的代码: Dim f As Form1 Set f = New Form1 f.Caption = "hello" f.Show 将 New 关键字和 Set 语句并用会加快运行速度,因此,这种方法值得推荐。 对其它对象使用 New 关键字 可用 New 关键字从类模块中定义的类创建集合和对象。试用下例说明这一工作过程。 此例说明了 New 关键字是如何创建类的实例的。打开新工程,在 Form1 上画出一个 CommandButton 控件。从“工程”菜单中选择“添加类模块”命令,从而在工程中添加一个类模块。设置类模块的 Name 属性为 ShowMe 。 Form1 中的下列代码创建了类 ShowMe 的新实例,还调用了包含在类模块中的过程。 Public clsNew As ShowMe Private Sub Command1_Click () Set clsNew = New ShowMe clsNew.ShowFrm End Sub 类模块中的 ShowFrm 过程创建类 Form1 的新实例,显示窗体,然后使其最小化。 Sub ShowFrm () Dim frmNew As Form1 Set frmNew = New Form1 frmNew.Show frmNew.WindowState = 1 End Sub 为了应用这个例子,请运行应用程序并单击命令按钮数次。在创建 ShowMe 类的每一个新实例时将看到最小化的窗体图标出现在桌面上。 详细信息 关于利用 New 创建对象的信息,请参阅“用部件编程”。 New 关键字的限制 下表说明不能用 New 关键字做什么。 不能用 New 创建 不允许的代码的例子 基本数据类型的变量。 Dim X As New Integer 任何一般对象类型的变量。 Dim X As New Control 任何特定控件类型的变量。 Dim X As New ListBox 任何特定控件的变量。 Dim X As New lstNames 释放对对象的引用 每个对象都使用内存和系统资源。当不再使用对象时及时释放这些资源,这是良好的编程习惯。 用 Unload 从内存中卸载窗体或控件。 用 Nothing 释放对象变量占用的资源。用 Set 语句将 Nothing 赋予对象变量。 详细信息 请参阅语言参考中的“Unload 事件”和“Nothing”部分。 给过程传递对象 可在 Visual Basic 中将对象传递给过程。在下面的代码例子中假定窗体中有一 CommandButton 控件: Private Sub Command1_Click () '调用 Demo 子过程,并将窗体传递给它。 Demo Form1 End Sub Private Sub Demo (x As Form1) '在屏幕中使窗体居中。 x.Left = (Screen.Width - x.Width) / 2 End Sub 可以通过引用把对象传递给参数,然后在过程内将参数设置成新对象。为了看到这一工作过程,打开工程并插入第二个窗体。在每个窗体中安放一个图片框。需要改变的属性设置值如下表所示: 对象 属性 设置 Form2 上的 图片框 Name Picture Picture2 c:\vb\icons\arrows\arw01dn.ico Form1_Click 事件过程调用 Form2 中的 GetPicture 过程,并把一个空的图片框传递给它。 Private Sub Form_Click () Form2.GetPicture Picture1 End Sub Form2 中的 GetPicture 过程把 Form2 上的图片框的 Picture 属性赋予 Form1 上的空图片框。 Private objX As PictureBox Public Sub GetPicture (x As PictureBox) '将传递进来的图片框赋予对象变量。 Set objX = x '将 Picture 属性值赋予 Form1 的图片框。 objX.Picture = picture2.Picture End Sub 为了应用这个例子,请运行程序并单击 Form1。在 Form1 的图片框中将看到出现了 Form2 中的图标。 详细信息 上述主题意在概述对象。更详细内容,请参阅“用对象编程”和“用部件编程”。

7,765

社区成员

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

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