深入Delphi编程(OOP)

http://tech.ddvip.com   2007年11月19日    社区交流

内容摘要:OOP的英文全称是Object Oriented Programming,翻译过来就是面向对象编程。OOP是一种非常重要的编程思想。也许你会对这种抽象的东西不感兴趣,可是几乎任何一个高手都会告诉你:“语言并不重要,重要的是编程思想。”

  象对待一般的函数或过程那样,也可以向构造器传递参数:

  type
  TDate = class
  private
  Mouth,day,Year:Integer;
  Public
  function LeapYear:Boolean;
  function GetText:String;
  Constructor Create(m,d,y:Integer);
  end;  procedure TDate.Create(m,d,y):Integer;
  begin
  Mouth := m;
  Day := d;
  Year := y;
  end;

  调用它:

  ADay: TDate;
  begin
  ADay := TDate.create(1,1,2000);
  if ADay.LeapYear then
  ShowMessage('闰年:' + Inttostr(ADay.year));
  ADay.free;
  end;

  这样,在Create方法里就完成了对数据的初始化,而无须再调用SetValue方法了。

  接下来,我们将要涉及到另一个重要的、也是很有趣的问题:方法的虚拟与重载。

  可能你已经有点晕了吧……还是先看一个新的例子:

  type
  TMyClass = class
  procedure One;virtual;
  end;  type
  TNewClass = class(TMyClass)
  procedure One;override;
  end;  procedure TMyclass.One;virtual;
  begin
  ShowMessage('调用了TMyclass的方法!');
  end;  procedure TNewClass.One; override;
  begin
  Inherited;
  ShowMessage('调用了TNewClass的方法!');
  end;

  可以看到,从TMyClass派生了一个新类TNewClass。这两个类都声明了一个名字相同的方法One。所不同的是,在TMyClass中,One方法后面多了一个Virtual关键字,表示这个方法是一个虚拟方法(Virtual Method)。而在TNewClass中,One方法后面多了一个Override关键字,表示该方法进行了重载(Override)。重载技术能够实现许多特殊的功能。

作者:左轻侯    责编:豆豆技术应用

正在加载评论...