初探Object Pascal的类(一)

类是什么?

(class)是字段和方法(函数和过程)的集合,并把这些字段和方法集中在一起完成一项特定的编程任务,在这种情况下,类也称为封装任务

类具有以下性能:

控制存取的能力、构造程序(constructor)、析构程序(destructor)、字段(field)、方法(函数和过程)、隐含的特殊指针Self

在进一步讲解这些性能之前,我们先看看一个例子怎么使用一个类,以典型的Windows控件-复选框(CheckBox)为例。

0058

1、表示复选框(CheckBox)的类具有反映复选框标题和状态(选中或不选中)的字段;

2、这个类也应该具有一些方法,这些方法可以用来设置和查询复选标题,而且能够设置和查询其状态,这些方法的名称可能为GetCheck、SetCheck、GetCaption、SetCaption;

3、当类编写好之后,就可以建立一个类的实例来控制复选框。(暂且不要管如何建立的类,假设我们已经建立好了CheckBox类);

4、加入我们的程序中需要三个复选框(CheckBox),那就应该有三个CheckBox类实例;

5、代码如下(代码无法测试,只是作为一个例子演示说明类的)

var
  Check1: TMyCheckBox;  { 声明三个TMyCheckBox类实例变量}
  Check2: TMyCheckBox;
  Check3: TMyCheckBox;
begin
  Check1 := TMyCheckBox.Create(ID_CHECK1); { 创建三个TMyCheckBox类实例}
  Check2 := TMyCheckBox.Create(ID_CHECK2);
  Check3 := TMyCheckBox.Create(ID_CHECK3);
  Check1.SetCaption('Option One');   { 第一个复选框标题为“Option One”,且选中}
  Check1.SetCheck(True);
  Check1.SetCaption('Option Two');   { 第二个复选框标题为“Option Two”,且不选中}
  Check1.SetCheck(False);
  Check1.SetCaption('Option Three'); { 第三个复选框标题为“Option Three”,且选中}
  Check1.SetCheck(True);
  if Check1.GetCheck then Do OptionOneTask;
  { 通过GetCheck返回是否选中,如果选中执行OptionOneTask过程}
  if Check2.GetCheck then Do OptionTwoTask;
  {etc. 等等}
end;

6、在这个例子中,每个类的实例都是独立的对象。每个实例都有自己的字段,并且对象之间是相互独立的。它们都是相同类型的对象,但在内存中又是独立的实例。

上面的例子只是让大家消除一些模糊的概念,进一步理解类。

原文地址:https://www.cnblogs.com/pchmonster/p/2304838.html