说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB 6.0中类聚集关系的实现

HTML文档下载 WORD文档下载 PDF文档下载
VB 6.0中类聚集关系的实现
作者:武汉交通科技大学
杨青 刘洪星
---- 类之间最主要的关系有两种,它们是聚集(Aggregation)和继承(Generelization)。聚集表示类之间的关系是整体与部分的关系,例如一个家庭有一个父亲、一个母亲和若干个孩子。类之间的聚集关系又称包含关系,一个类由若干个其他类组合而成,当该类的实例被创建后,组成它的各类的实例将自动被创建。

---- 下图描述了Family类与组成它的各类之间的关系。Family类与Father类、Mother类的关系是一对一的关系,而Family类与Child类的关系是一对多的关系。为了简化类之间的关系,我们增加了一个Children类,Children类是Child类的集合,因此Family类与Children类直接关联,形成一对一的关系。

Family------------ > Father
|
-------- > Mother
|
-------- > Childred ------ >child

---- VB6.0对类聚集关系的实现提供了较好的支持。在下面的程序中,我们仅给出了与Falimy类、Children类、Child类的具体实现有关的代码,以此为例说明类聚集关系的实现方法。
---- 程序中定义了三个类模块:Falimy类模块,Children类模块,Child类模块。在Falimy类模块中,利用属性过程,Mother类、Father类、Children类被定义为Family类的只读属性。下面是Family 类模块中声明部分的代码。

Option Explicit
Private mFather As New Father
Private mMother As New Mother
Private mChildren As New Children
Public Property Get Father() As Father
Set Father=mMother
End Property
Public Property Get Mother()As Mother
Set Mother()=mMother
End Property
Public Property Get Children() As Children
Set Children= mChildren
End Property

---- 下面是Children类模块的代码,首先在类模块的说明部分创建了集合类Collection的实例mcolChildren。在定义公共方法Add时,通过引用mcolChildren的Add方法将新的Child 对象添加到集合中,Children类被定义成Child类的集合。通过直接引用mcolChildren的属性Count定义了Children类的公共属性Count,通过直接引用mcolChildren的方法Item定义了Children类的公共方法Item。
---- 我们还可以根据需要实现其他的属性和方法。通过创建Children类,与Children类有关的所有代码都封装起来,使得Children类可以进一步重用,从而较好地体现了面向对象程序设计的原则。

Option Explicit
Private mcolChildren As New Collection
Public Property Get Count() As Long
Count = mcolChildren.Count
End Property
Public Function Add(ByVal Name As String,
ByVal BirthDayAs Date,ByVal Sex As Boolean ) As Child
Dim empNew As New Child
Static intNum As Integer
With empNew
intNum = intNum + 1
.Name = Name
.BirthDay= BirthDay
.Sex=Sex
mcolChildren.Add empNew
End With
Set Add = empNew
End Function
Public Function Item(ByVal Index As Variant) As Child
Set Item = mcolChildren.Item(Index)
End Function

---- 下面是Child类声明部分的代码。
Option Explicit
Public Name As String
Public BirthDay As Date
Public Sex As Boolean

---- 程序中还定义了一个窗体模块。在窗体上布置有三个文本框txtName、txtBirthDay、txtSex,一个列表框lstChildren,两个命令按纽cmdAddChild、cmdListChild。
---- 在窗体模块中首先创建了一个Family类的实例sbMain,Children类和Child类的实例也随之被创建。在事件过程中,仅通过引用sbMain的属性Children,我们就可以实现对Children类的各种操作。

Option Explicit
Public sbMain As New Family
Private Sub cmdAddChild_Click()
sbMain.Children.Add txtName.Text,
txtSalary.Text,txtSex.Text
txtBirthDay.Text = " "
txtName.Text = " "
txtSex.Text=" "
End Sub
Private Sub cmdListChild_Click()
Dim emp As New Child
Dim i As Long
lstChild.Clear
For i = 1 To sbMain.Children.Count
Set emp = sbMain.Children.Item(i)
lstChild.AddItem emp.Name & ", "
& emp.BirthDay&", "emp.Sex
Next
End Sub

被逼无奈?传微软或明年秋发布iOS和Android版Office 欧洲各国政府将向大众开放公共数据 访联想云存储罗予晋:优化MooseFS,共建生态系统 磊友创始人赵霏:关于HTML5与Flash争执之我见 国际混乱C语言代码大赛优胜作品详解之“A clock in one line” 揭秘程序员大脑编程的七大“误区” 从Java到ObjC语言的桥梁:谷歌J2ObjC 0.7版本亮相 数据库管理系统ParElastic:打破常规 扩展云端MySQL 谷歌苹果专利纠纷意在战略无意和解 美法官为其苦恼 Facebook收购神秘移动软件创业公司Osmeta 修改驱动,使用Erlang+VoltDB实现每秒87.7万事务 横评美国IaaS“8匹狼”:AWS、GCE、Azure、Rackspace、SoftLayer、Dell、HP、Joyent 独立游戏精神释放的舞台:IGF China 2013作品火热征集中 三款热门入门级在线编程教程对比 微软modern.IE:网站兼容性测试利器 Localytics:AngularJS代替Backbone 代码减少一半 史上增长最快的SaaS服务Optimizely:13亿访客,10万次测试 IDF上的云计算故事 移动周报:百万年薪、微信疑云,老罗小马本周很忙 一个创业失败者的自述:我是如何搞砸一款产品 收入百万美元:一个放弃上大学的程序员 Cocos2D配Box2D:逆天小白程序员作iOS游戏 招聘移动开发,老板必问的10个问题 黑客用智能手机劫持和控制民航飞机 几小时即可使互联网瘫痪的黑客 现已加入谷歌 Tsar开源:淘宝内部大量使用的系统监控工具 五款超实用的开源SVG工具 微信收费事件背后被广泛忽略的技术细节 UIDesigner 3.0架构设计总结 黑客怒了:政府花930万美金仅做一款App Email服务迎来“第二春” 未来将更加个性化 用sdk编程怎样加入toolbar? table里的查询字段为什么不会显示数据? c#与interbase请教 C语言的大小问题都在这里面? 不要编译,你猜猜这个程序会有几个类型匹配的警告? 不要编译,你猜猜这个程序会有几个类型匹配的警告? 高分解问,请教高手!关天GIS! 如何判断窗体中的某个控件是textbox控件?或判断窗体中textbox的个数? 如何调用返回不定字段个数的存储过程 那里能找到rational rose 有关FORM与ACCESS数据库的连接 如何使用photoshop把图像缩小到指定大小? 关于某种文件关联的问题 为什么用net send发送的消息有关不掉,点了好多次确定也没用。 怎么保存到数据库中?急急急! 电脑出问题了。 tomcat4.01+apache2.046组合问题:单个的都能运行,...可以加分.. %u的问题 如何调整对话框上工具栏的状态 关于query控件的一个问题 如何结束一个线程? FastReport怎么将没有记录的地方也画上格子??? 我的oracle9装上去之后怎么有7。2G那么大??并且还连不上MANAGEMENT SERVER只能独立启动??请指教!! Fastreport与quickreport那个更好用? 进者有分. 强烈要求铲除全国所有的收容所!!! 要用什么软件才能将CMOS参数备份到某个文件夹中? 请问怎么在建表代码里定义关键字? 请问把数据写入ListView控件内,有什么办法可以快点? win2k server dns 求助! 我在易趣上竞的一个数码相机,只要250元,但是只能拍26张相。我不知道是真是假? 一个搞不定的恶意网站 cout与printf的问题 没有路由怎样用一台服务器实现300台左右的电脑上网? ResultSet里读出数据的参数问题,马上给分 netvt(唯她 v1.1.1),进来拿你应得的分 如果我的程序中用了VFP,但是用户可能并没有装VFP,有什么好的办法直接替用户解决了这个问题,而不是提醒他自己去装 怎么保存到数据库中?急急急! 我用treeview显示数据库的数据,增加一条新记录后,要怎么样才能马上在treeview显示? 无法传值问题,高手急救!!!!!!!!! 在线等待:怎么为datagrid控件的某一格赋值? 请教如何在input上传筐里面限制文件类型? java的图形设计比如swing有前途吗?大家来讨论下,迷惑中。。。 计算机静电问题!! 错误在那里 请教批量update出错问题 请问串口方面的? QQ使用MFC42.DLL, 数据库的记录有文本、有图片、我想给它排成word样式的A4版预览、再打印如何实现 请问,如何在Form中画图啊??/ 水晶报表问题。急呀!! 一个奇怪的问题 近五年来,青蛙(田鸡)肉走上餐桌,假如人们大量捕杀这种农田中的青蛙.这样带来的后果是( ).“假如人们大量捕杀这种农田中的青蛙.”中的这种农田是指:水稻,稻螟虫,蚯蚓,蛇,蜜蜂,野 求“单丝不成线,独木不成林.”的意思?快 ↖↗↘↙这四个符号怎么打 cf潘多拉角色有什么优点,比起灵狐怎么样? 主序星和超新星有什么区别呢?主序星和超新星有什么区别呢?主序星除了成为红巨星还能成为什么?超新星爆发除了能成为中子星外,能成为红巨星或黑洞吗? 子曰:“君子食无求饱,居无求安,敏于事而慎于言,就有道而正焉,可谓好学也已.”可谓好学也已 中通假字是什么,再将通假字解释 邱少云哪年牺牲的? 长大后我就成了你阅读答案1.写出下类词语的近义词以为( )美丽( )奉献( )希望( )2.歌词中的“小鸟”指的是( ),“你”指的是( ).抄出赞颂“你”的诗句.(共四处)3.歌词中的 核能 核 能(1)核能俗称原子能,它是原子核里的核子——中子或质子,重新分配和组合时释放出来的能量.核能分为两类:一类叫裂变能,一类叫聚变能.(2)核能有巨大的威力.1公斤铀原子核全部裂 西方管理思想产生的背景是什么? We don't do much b()with foreign companies.首字母填空 《长大后我就成了你》阅读短文答案 /1题小时候我以为你很美丽,领着一群小鸟飞来飞去;小时候我以为你很神气,说上一句话也惊天动地.长大后我就成了你,才知道那间教室放飞的是希望,守 一个物体放在一个斜面上,这时物体对斜面有压力吗 (生物)有人爱吃青蛙,为此便有人大量捕捉野生青蛙,这种做法会产生什么后果? 长大后我就成了你 阅读短文答案小时候我以为你很美丽,领着一群小鸟飞来飞去;小时候我以为你很神气,说上一句话也惊天动地.长大后我就成了你,才知道那间教室放飞的是希望,守巢的总是 有些人爱吃蛙肉,为此便有人大量捕捉野生青蛙,这种做法会产生怎样的后果? 已知点a(1,0)和b(3,-1).若点m是y轴上一点,且满足△abm是直角三角形,则点m的坐标是 文言文《杯弓蛇影》全文意思 有些人爱吃肉,为此便有人大量捕捉野生青蛙,这种做法会产生怎样的后果? 如图,直线y=kx+6与x轴,y轴分别交于点A、B,△ABO等腰直角三角形. (1)求函数解析式.我会做2)已知点C(4,0),点P是线段AB上的一点,且△POC是以PC为一腰的等腰三角形,求点P的坐标 word如何让表格的任意一条表加粗? 圆O1的半径是2cm,圆O2的半径是5cm,圆心距是4cm,则两圆的关系是 A.相交 B.外切 C.外离 D.内切圆O1的半径是2cm,圆O2的半径是5cm,圆心距是4cm,则两圆的关系是A.相交 B.外切 C.外离 D.内切 宇宙飞船在月球着落,宇航员在登上月球后,在月面上用天平测物体的质量,结果是什么 如何将word中的表格的上下线加粗为1.5磅,其余为0.5磅 隐形飞机的隐形原理是什么?如何做到隐形? 海贼王超新星是什么意思 ps中如何在保持选区位置不变的情况下,移动选区中的内容? 隐形飞机为什么能隐形,的原理是什么? 超新星与新星有什么区别? word中如何加粗表格线 已知两个圆的半径分别为3cm和5cm,并且两圆没有公共点,则两圆的圆心距的取值范围是 六月五日是世界环境日、老师号召同学们爱护环境,从每个人做起.如果你想提醒同学们保护好校园新栽的小草,你应该怎么和同学们说呢? PS 如何移动绘制中选区在PS里,如何在边绘制选区(比如绘制圆形选区)过程中边调整绘制位置呢? “有些人爱吃蛙肉,为此便有人大量捕捉野生青蛙,这种做法会产生怎样的后果? 英语翻译your father wants you to take a training,class on management skins,you are an wining,to do so your classmate persuades you to attend the training.帮个忙 在下追加财富 word怎么加粗表格 有些人爱吃蛙肉,为此便有人大量扑捉野生青蛙,这种做法会产生怎么样的后果 长大后我就成了你作文500字 显微镜对生物起到什么作用举例 那一天我忘不了 作文 英语翻译rt 3q 我寄愁心与明月,后面半句是什么?现在就要! 作文字数:500---600.. 长大后我就成了你 六下练习册P115页阅读答案 副词有哪几类 CF潘多拉好吗?我买了,到底有什么好处 请问大家"我被这件事情感动了"用英语如何翻译啊~口语化点的哦~ ( )地模拟填上合适的词语 人们大量捕杀青蛙会产生怎样的严重后果? 三只蚂蚁一起走,中间的说我两边各一只,右边的说我左边有两只,左边的说我右边没有为什么? “种类”是副词吗 大量扑抓青蛙,后果怎样? 独木不成林的后一句急 填上恰当的词语 凝聚什么 模仿什么 从跳高 等分析我主要玩JU ____,独木不成林 这类副词的用法?angrily differently excitrdly excitingly interestingly decisively 这类副词怎么使用?我觉得它们和形容词的意思差不多啊?怎么区别它们和形容词用法差异呢? 如果大量捕杀青蛙,你觉得会造成怎样的后果.简答,100字以内. 文学——白杨树的湖中倒影 为什麽需要文学?了解文学、接近文学,对我们形成价值判断有什麽关系?如果说,文学有一百种所谓「功能」而我必须选择一种最重要的,我的答案是:德文有一个很 什么类型的副词可以做表语 中国留学生勇救日本小学生 安倍将为其安倍访问土耳其 助日企获福岛核事故后南非20名白人右翼分子因叛国罪获刑 张德江会见印尼人民协商会议主席西达尔德专家:欧元区最大问题在于违反不援助日本海上自卫队一军官因非法使用兴奋剂委内瑞拉总统称查韦斯音容出现在委地铁美国最新隐身驱逐舰下水 明年秋季开始消息人士称叙化武生产设备销毁工作如期纽约提高香烟禁售最低年龄 未满21不研究证明蝙蝠系非典传播源 病毒可由动小狗被饿三周吃伞充饥 其主人不愿救治男子扮高富帅专门诈骗按摩女 谎称投资巴西里约热内卢社会游民多 5000余媒体曝美全球监听地图 澳大利亚是美监近3成日本大学毕业生3年内离职 疑被美国艺术家创造“糖果肖像”庆祝万圣节法国一名抢劫犯曾为iPod及8欧元抢韩媒:中国学生“弃日择韩” 赴韩留学俄罗斯一科技园项目涉嫌违法 或致数百新10英镑钞票印简 奥斯丁头像 被批银行人均收入排行:哪家员工最会赚钱?高盛:2015年最值得关注的8大交易一加氢OS发布 短信卡片和生活服务成Robo-Advisory真的很时髦工作狂其实害人害己消灭僵尸!iOS游戏《僵尸水桶》开始深刻:同样是炒股,为何他炒赚了而我却商界巨人史玉柱:东山再起的15条秘诀“野狗”刘之:扼住命运的喉咙互联网大佬云集浙江,李克强跟他们聊了3W公开课 | “互联网+”的新三切记,20种情况不买股票!推荐|成功,不要“尽力”,要“借力”问理财:29日基金理财消息速递投资者60亿被骗 诈骗者居然获评十大为啥今年赚钱这么难?10张图告诉你答问理财:29日值得关注的优质股票谁是中国最大的P2P平台?一张图看懂新财富最佳分析师评选美国呵斥伊拉克打击ISIS不积极一文览尽上周全球互联网金融投融资信息
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘