| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 881 人关注过本帖
标题:什么叫运行表单多个实例
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
“表单”这个中文用法,本身就不规范。不论是写出的.scx文件,还是在.prg中写的DEFINE CLASS类代码,存储为.vcx也罢,都是“类”,这些文件只是类代码的存储器。只有在程序运行时,通过DO FORM aaa NAME _aaa这样的指令,从类aaa代码派生出一个内存对象命名为_aaa,这个_aaa才是该类的一个对象实例,这条指令你可以无限重复,比如DO FORM aaa NAME _bbb,这时_bbb也是基于类aaa的一个对象实例,与前面的_aaa是两个不同的实体。这就是所谓的多个对象。中文“表单”这个词,把.scx也叫表单,把运行时的对象实例_aaa、_bbb也叫表单,概念混乱。

DO FORM aaa NAME _aaa这样的指令,在代码中其实就是 _aaa = NewObject("aaa"),等号右边的是类,左边的是对象实例,这等于创建多个内存变量。本来是很简单的概念,用代码一看就明白的。
收到的鲜花
  • tlliqi2013-01-17 07:46 送鲜花  20朵   附言:说的很好

授人以渔,不授人以鱼。
2013-01-16 23:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
在编程语言中,本来诸如 int i = 1这样的语句,就是在创建对象,这是创建一个命名为i的对象实体,它是从整数(int类)中派生出来的,并同时赋予它的即时状态值1。同样,int j = 2也是从同样的类int中创建出一个对象实体j,它具有即时状态值2。i和j是基于同一个类派生出来的对象实体,类似地,可以创建一个数组,派生任意数量的同样的对象实体。

对类int来说,它不必拥有两个以上的1或2,逻辑上它只需要有一个1和一个2就可以了,这是做类设计时定下的模板,当创建对象实例时,就把这些模板分配给对象,尽管可以i=1并且j=1,值相同,但这两个仍然是不同的对象实体,对这样的对象实例,只可以判断是否拥有相同的值,但不能说i和j是同一个东西,因为它们确实占据着内存中不同的地址,是两个不同的实体。此时,对象的具体值1/2与类设计器中定义的1/2是不同的性质。世界上使用阿拉伯数字的对象实例有亿亿万万以至无穷,但作为类的阿拉伯数字其实就只有10个符号,这些符号就是类,使用它们的才是对象。类是观念上的,对象是实的。

从同一个“表单”.scx中DO FORM出来的两个“表单”,是不同的两份“表单”!

[ 本帖最后由 TonyDeng 于 2013-1-16 23:23 编辑 ]

授人以渔,不授人以鱼。
2013-01-16 23:21
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
回复 11楼 TonyDeng
说的很好
2013-01-17 07:46
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
讲的太好,原来如此。 TonyDeng你真行不愧为版主.
还有一句:类的阿拉伯数字其实就只有10个符号,这些符号就是类。这10个符号是什么?

 
2013-01-17 09:48
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
就是0-9这些符号啊,int类的构成要素而已。当然一个类除了必备的符号,还有一定的规则,把这些封装起来,就是所谓的类。

类是抽象的,实例是相对抽象而言的,因为抽象是通过舍弃实例的某些特殊属性而得到的虚构物,虚与实相对。对象是具体的个体实例。

授人以渔,不授人以鱼。
2013-01-17 13:13
lzh_163163
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-2-27
收藏
得分:0 
在网络环境中,多个用户运行同一个功能表单,也是多个表单的多个实例,是吗?
2013-01-17 14:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用lzh_163163在2013-1-17 14:03:28的发言:

在网络环境中,多个用户运行同一个功能表单,也是多个表单的多个实例,是吗?

也对。其实在同一台机器中反复启动相同的程序,也是多个实例,最典型的就是IE。

授人以渔,不授人以鱼。
2013-01-17 14:06
快速回复:什么叫运行表单多个实例
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018294 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved