======================================================
注:本文源代码点此下载
======================================================
容易犯错原因:初次接触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^)/