深入Delphi编程(OOP)

豆豆网   技术应用频道   2007年11月19日    社区交流

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

  表1

  Private 该类型的成员只能在声明类中被访问

  Public 该类型的成员可以被程序中的任何地方的代码访问

  Protected 该类型的成员只能在声明类以及声明类的派生类中被访问

  Protected类型的成员以及什么是“派生类”等问题我们留到以后再进行讨论,现在我们将注意力集中在前两者。

  Public类型就是在上面例子中的那种类型,这个很好理解。而Private类型,根据表格中的简单解释,只能在该成员被声明的那个类(也就是该成员所属的那个类啦)中被访问,越出这个界限,它就是不可见的。那么,Private类型的成员将如何被使用呢?简单地说,就是通过一个Public类的方法来访问它。

  让我们看一个新的例子:

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

  在这个类中,Mouth,Day,Year这三个成员被声明为Private成员,因此它们在类以外的其它地方是不可访问的。也就是说,如果你使用

  ADay.Year := 2000;

  这样的代码,那么编译器将会报错。但是,我们可以照样通过SetValue方法为它们赋值:

  ADay.SetValue(1,1,2000);

  这行代码是合法的,因为SetValue本身是TDate类的成员,而且它又是一个Public成员。而使用GetText方法则可以得到当前日期值(这也是得到当期日期值的唯一办法)。

  这样的设置使得类的一些成员被隐含起来,用户只能用一些专门的方法来使用它们。那些可以被外部代码访问的成员称之为类的接口。这样做有什么好处呢?首先,这让类的作者可以检测被赋值的内容。比如,用户可能给一个对象赋予13月40日这样的无效日期。而在隐含了一些成员之后,类的作者可以在方法的代码中检测这些值是否有效,从而大大地减少了产生错误的机会。其次,使用规范的类,作者可以随时修改类内部的代码,而使用该类的代码却无需任何修改!这样使得代码的维护成了一件轻松的事件,特别是对于多人协作的大型软件而言。

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

正在加载评论...