实例15 class,想说爱你不容易

2022/3/5 6:15:44

本文主要是介绍实例15 class,想说爱你不容易,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

编程序的方法,有结构化方法与面向对象的方法,结构化方法说白了就是函数堆积法,不同的函数完成不同的功能,最后将函数堆积起来,构成一个完整的程序。面向对象的方法是一种打包法,现在什么东西都讲究包装,编程序也不例外,面向对象的方法就是将完成某一种功能的变量、函数进行包装,变成一个统一的整体,当调用这个整体时,就完成该整体所赋予的功能。

哪一种方法更好,各有千秋,不能说面向对象的方法就比结构化的方法优越,比如我们在设计dll动态链接库时,要将一些通用的函数放在dll中,便于其他应用系统调用,在这种情况下,用面向对象的设计方法就不太合适。

为什么我们刚开始编程时,害怕提到“面向对象”,感觉这东西太深奥了,不可理解。什么对象、继承类、导出类、虚函数、重载、友元等等,这些存在于各种各样的参考书中,反反复复却没有把问题将清楚,使初学者一看就头大,太多的概念,太复杂的内容,使我们不敢轻易去接近面向对象的方法。

其实面向对象方法并不可怕,你知道变量是什么吗?你会编写函数吗?如果你会,你就会用面向对象的方法写程序,只需要用class将它们说明一下就可以了。比如一个简单的类定义如下:

type

  TMyClass=class(祖先类)

  private

    aa,bb:Integer;  //私有变量

    function GetItem(Index:Integer):TListColumn;  //私有函数

    procedure SetItem(Index:Integer;Value:TListColumn);  //私有过程

  public

    constructor Create(Owner:TComponent);override;  //创建过程

    destructor Destroy;override;  //毁坏过程

    P_aa,P_bb:Integer;  //公有变量

    function P_GetItem(Index:Integer):TListColumn;  //公有函数

    //公有过程

    procedure P_SetItem(Index:Integer;Value:TListColumn);

    ....

end;

在写函数或过程时,与普通函数或过程的写法唯一不同的是,在函数名前加上.号,前面再加上class名称,比如:

procedure MyClass.test();

begin

  bb:=aa;

end;

所谓私有变量或函数,定义在private说明符下,只供本class内部使用。公有变量或函数则定义在public说明符下,既可以供本class内部使用,也可通过外部调用。当然,外部调用也要带上class名称,比如:

mc:=Tmc.Create;

mc.P_test1();  //可以调用,P_Test1函数为公有函数

mc.aa:=100;  //不可以这样赋值,aa为私有变量

mc.Free;

在这段代码中,我们使用了操作符Create与Free,这两个操作符在class运用时是成对出现的,Create对class进行初始化,Free操作符删除已经存在的class。如果这个class没有初始化成功,就不能用Free对它进行删除。

单个类的程序在编写之后,慢慢你就会导出类,就会用虚函数等,一步一步学着来,面向对象的编程方法就会被你掌握。



这篇关于实例15 class,想说爱你不容易的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程