| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 656 人关注过本帖
标题:构造的问题
只看楼主 加入收藏
liuqiang_sy
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-3-13
收藏
 问题点数:0 回复次数:4 
构造的问题
type
TPerson = class
public
Name:string;
Age:Integer;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
consen:Tperson;
begin
consen:=Tperson.create;
consen.Name:='小珊';
consen.Age:=25;
showmessage(consen.Name);
showmessage(inttostr(consen.Age));
consen.Free;
end;
//***************************************************//
tpye
TPerson=object
public
Name:string;
Age:integer;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
consen:Tperson;
begin
consen.Name:='小珊';
consen.Age:=25;
showmessage(consen.Name);
showmessage(inttostr(consen.Age));
end;

两者有什么区别吗?第一种不用consen:=Tperson.create;也可以操作对象成员.
搜索更多相关主题的帖子: 构造 
2007-05-16 22:37
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
收藏
得分:0 

压根你就没有研究研究OO 编程!

面向对象的封装,多态,继承. 你理解了多少.

看看你的程序:

consen.Name:='小珊';
consen.Age:=25;
showmessage(consen.Name);
showmessage(inttostr(consen.Age));

你不如用2个变量来替代consen.name, consen.age.有什么区别.
象你这么用类,类的设计需要抽象化,不是粘手就来的.


大家都是朋友,有空就来坐坐!
2007-05-17 08:14
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 

如果你想测试class和object的区别的话,我大概知道一些,
class如果后面不填写特定的继承类型,则默认继承tobject
type
TPerson = class(Tobject), Tobject封装了构造,析构函数和别的一些方法。
而object,称为对象类型(前面是类类型),如果部继承任何的对象类型,则表示这个类没有任何的父类,所以没有构造,析构等方法,这时它的使用方法形同一个记录的使用方法。

2007-05-17 11:15
liuqiang_sy
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-3-13
收藏
得分:0 

那么上边写的class不加继承类型的话和默认继承tobject等同吗?


2007-05-17 16:31
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 

是的,Class默认继承Tobject

2007-05-17 16:34
快速回复:构造的问题
数据加载中...
 
   



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

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