Delphi中的封装特性


======================================================
注:本文源代码点此下载
======================================================

容易犯错原因:初次接触delphi语法,封装思想的不牢固。

delphi一大特性:基于窗体和面向对象的方法,封装意味着数据和代码出现在同一个结构中

var

form1: tform1;

implementation

{$r *.dfm}

procedure tform1.button1click(sender: tobject);

begin

showmessage(form1.caption); // ???

end;

分析:

showmessage(form1.caption);

form1是tform1类的一个实例,被写死到类的实现中 ,这不符合封装思想,是不对的,可以更改为 showmessage(selfs.caption);

var

form1: tform1;

var

form2: tform2;

procedure tform1.button1click(sender: tobject);

begin

form2.show;// ???

end;

//分析,作为一个全局的变量,form2在这里的使用同样让人觉得混乱。不符合封装性的要求。

//参考以下代码

type

tform1 = class(tform)

button1: tbutton;

procedure button1click(sender: tobject);

private

{ private declarations }

fnext: tform;

public

{ public declarations }

property nextform: tform read fnext write fnext;

end;

var

form1: tform1;

implementation

uses unit2;

{$r *.dfm}

procedure tform1.button1click(sender: tobject);

begin

if assigned(fnext) then

tform2(fnext).show;

end;

end.

// 以下是工程文件中的内容:

program project1;

uses

forms,

unit1 in 'unit1.pas' {form1},

unit2 in 'unit2.pas' {form2};

{$r *.res}

begin

application.initialize;

application.createform(tform1, form1);

application.createform(tform2, form2);

form1.nextform := form2; // <-- 增加这么一句,勉强让代码符合封装的要求了

application.run;

end.

补充:

世界由各种各样具有自己运动规律和内部状态的对象组成,用面向对象的开发方法,要求系统直接和现实世界的结构对应。

应该围绕对象构造系统,而不是围绕功能构造系统。

对象:是人们研究的任何事物,有具体的物体,或抽象的规则,事件等。

对象状态:用数据值描述对象状态。

对象行为:用于改变对象状态。

对象实现了数据和操作的结合,是一种封装。

对对象的抽象就是类,他具有熟悉和操作,分布对应于数据结构和操作方法。

继承是子类共享父类结构和方法的机制,是类之间的一种关系,减少类创建和维护工作,增强代码重用性。

多态:指相同的操作对应不同的对象,收到同一参数,却返回不同结果,允许每个对象以自身的方式响应

共同的消息,增强软件的灵活性和重用性。

uml是一种定义良好、易于表达、功能强大且普遍适用的建模语言。

对象建模的目的就是描述对象,将对象抽象成类,增强模型的归纳能力。

关联式类之间建立关系的手段,链式对象之间建立关系的手段。

角色是说明类在关联中的作用。

状态机时标准的计算机概念,是有限自动机的图形表示。反映状态和事件的关系。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值