随笔分类 -  类相关

上一页 1 2 3 4 5 下一页
理解 Delphi 的类(十一) - 深入类中的方法[10] - 构造方法与析构方法
摘要://构造方法就是对象建立时调用的方法; 析构方法就是对象销毁时调用的方法. 如: TMyClass = class(TObject) public constructor Create; {构造方法} destructor Destroy; override; {析构方法} end; {几个要点: 这两个方法都可以追溯到所有类的祖先类 TObject; ... 阅读全文
posted @ 2008-01-17 14:09 万一 阅读(4999) 评论(5) 推荐(1)
理解 Delphi 的类(十一) - 深入类中的方法[9] - 不能被覆盖的方法与不能被继承的类
摘要:{ 抽象类是一定要被继承才可以使用的; 抽象方法是一定要被覆盖才可以使用的. 现在说的是不能被覆盖的方法, 与不能被继承的类. } //譬如: TA = class procedure Proc; virtual; {TA 中的虚方法, 将要被覆盖} end; TB = class(TA) procedure Proc; override; {覆盖} end; TC =... 阅读全文
posted @ 2008-01-17 12:25 万一 阅读(4924) 评论(7) 推荐(0)
理解 Delphi 的类(十一) - 深入类中的方法[8] - 抽象方法与抽象类
摘要://抽象方法类似与接口; 在没有接口的年代 Delphi 是用抽象方法来模拟接口的; 我想它最终会被接口替代. {下面就定义了两个抽象方法} TMyClass = class(TObject) procedure Proc1; virtual; abstract; {抽象方法首先应该是一个虚方法或动态方法} function Fun: string; dynamic; abs... 阅读全文
posted @ 2008-01-17 00:36 万一 阅读(6124) 评论(3) 推荐(0)
理解 Delphi 的类(十一) - 深入类中的方法[7] - 关于 inherited
摘要:// inherited 就是调用父类方法的一个特殊命令; 举例: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) But... 阅读全文
posted @ 2008-01-16 21:27 万一 阅读(7117) 评论(5) 推荐(0)
理解 Delphi 的类(十一) - 深入类中的方法[6] - 类中的方法重载
摘要://类中的方法重载首先具备前面说过的重载相关的所有特点, 如: TMyClass = class(TObject) function Fun(s: string): string; overload; function Fun(i: Integer): Integer; overload; function Fun(x,y: Integer): string; overload; ... 阅读全文
posted @ 2008-01-16 19:53 万一 阅读(6669) 评论(2) 推荐(0)
理解 Delphi 的类(十一) - 深入类中的方法[5] - 静态方法、类方法、静态类方法
摘要://静态方法是默认的, 如果不是虚方法或纯虚方法, 那它就是一个静态方法. //类方法就是通过类名就可以访问的方法 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFo... 阅读全文
posted @ 2008-01-16 17:07 万一 阅读(11596) 评论(10) 推荐(1)
理解 Delphi 的类(十一) - 深入类中的方法[4] - 访问限制(或者叫可见性)
摘要://下面说的数据成员不仅仅指方法 TMyClass = class(TObject) function Fun1: string; {公共区域的数据成员在默认状态下会归于 published 区} //所谓默认状态就是编译指令为{$M+}, 如果是{$M-}这些数据成员会归于 public 区 private function Fun2: string; {private 区的数据... 阅读全文
posted @ 2008-01-16 15:52 万一 阅读(5258) 评论(4) 推荐(0)
理解 Delphi 的类(十一) - 深入类中的方法[3] - 方法在实现时的参数省略
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) end; TBass = class function Fun1(x,... 阅读全文
posted @ 2008-01-16 15:51 万一 阅读(4026) 评论(4) 推荐(0)
理解 Delphi 的类(十一) - 深入类中的方法[2] - 关于覆盖与重定义
摘要://标准的覆盖是这样的 TBass = class procedure Proc; virtual; {或用 dynamic} end; TChild = class(TBass) procedure Proc; override; end; //以下几种情况属于重定义, 其中例 3-5 还会有编译提示 {例1} TBass = class procedure Proc; e... 阅读全文
posted @ 2008-01-16 13:14 万一 阅读(4635) 评论(3) 推荐(0)
理解 Delphi 的类(十一) - 深入类中的方法[1] - 虚方法与动态方法
摘要:方法来到类中, 以前的特点基本都在; 因为类一般是存在于一个继承链中, 所以就有了一些新的概念, 譬如: 继承、覆盖; 也有了很多新名称, 譬如: 静态方法、虚方法、动态方法、抽象方法、类方法、消息方法. 先从虚方法与动态方法开始吧 //下面的类中就定义了两个虚方法(virtual)、两个动态方法(dynamic) TMyClass = class procedure Proc1(x,y:... 阅读全文
posted @ 2008-01-15 16:07 万一 阅读(5697) 评论(2) 推荐(0)
理解 Delphi 的类(十) - 深入方法[29] - 传址参数不能赋予常量
摘要:{给这个函数可以赋常数变量} function Fun1(x,y: Integer): Integer; begin Result := x + y; end; {这个函数不能赋予常数变量} function Fun2(var x,y: Integer): Integer; begin Result := x + y; end; {测试} procedure TForm1.Butt... 阅读全文
posted @ 2008-01-15 15:52 万一 阅读(3964) 评论(1) 推荐(1)
理解 Delphi 的类(十) - 深入方法[28] - 递归函数实例: 搜索当前目录下的所有嵌套目录
摘要://上面一个例子不能说明递归函数的本质, 直接来个实用的函数吧, 刚好要用. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ... 阅读全文
posted @ 2008-01-15 15:45 万一 阅读(5717) 评论(2) 推荐(0)
理解 Delphi 的类(十) - 深入方法[27] - 递归函数: 简单示例
摘要://所谓递归函数, 就是自己调用自己的函数, 先来个简单的例子: {递归调用的简单示例} procedure alert(i: Integer = 1); begin ShowMessage(IntToStr(i)); {这是方法的功能} Inc(i); if i 阅读全文
posted @ 2008-01-15 11:57 万一 阅读(5123) 评论(2) 推荐(0)
理解 Delphi 的类(十) - 深入方法[26] - 回调函数
摘要://把一个方法当作另一个方法的参数, 就是回调方法, 大家习惯称作回调函数 type TFunType = function(i: Integer): Integer; {声明一个方法类型} function MyFun(i: Integer): Integer; {建立类型兼容的函数} begin Result := i*2; end; {把函数当作参数, 再定义一... 阅读全文
posted @ 2008-01-15 11:37 万一 阅读(9124) 评论(7) 推荐(0)
理解 Delphi 的类(十) - 深入方法[25] - 使用方法类型
摘要://弄明白这一点, 才好使用回调函数 {定义方法类型} type TFunType = function(x: Integer): Integer; {函数类型} TProcType = procedure(name: string); {过程类型} {定义一个符合 TFunType 类型的函数} function MyFun(x: Integer): Integer;... 阅读全文
posted @ 2008-01-15 11:13 万一 阅读(5008) 评论(13) 推荐(0)
理解 Delphi 的类(十) - 深入方法[24] - 方法是一个指针
摘要:{自定义过程} procedure MyProc; begin ShowMessage('ok'); end; {自定义函数} function MyFun: string; begin Result := 'ok'; end; {读取它们的指针} procedure TForm1.Button1Click(Sender: TObject); var p: Pointer; be... 阅读全文
posted @ 2008-01-15 01:06 万一 阅读(4347) 评论(2) 推荐(0)
理解 Delphi 的类(十) - 深入方法[23] - 重载
摘要:{ 下面的函数重名, 但参数不一样, 此类情况必须加 overload 指示字; 调用时, 会根据参数的类型和个数来决定调用哪一个; 这就是重载. } function MyFun(s: string): string; overload; begin Result := '参数是一个字符串: ' + s; end; function MyFun(i: Integer): s... 阅读全文
posted @ 2008-01-15 00:51 万一 阅读(5560) 评论(6) 推荐(0)
理解 Delphi 的类(十) - 深入方法[22] - 指针参数
摘要:{现在这个函数并没有 var 前缀, 也就是说参数应该不会被修改的} function MyFun(p: PInteger): Integer; {PInteger 是 Integer 的指针类型} begin p^ := p^ * 2; Result := p^; end; {测试} procedure TForm1.Button1Click(Sender: TObject);... 阅读全文
posted @ 2008-01-15 00:23 万一 阅读(5273) 评论(4) 推荐(0)
理解 Delphi 的类(十) - 深入方法[21] - 开放数组参数
摘要://给一个整型开放数组求和的函数 function MyFun(const arr: array of Integer): Integer; var i: Integer; begin Result := 0; for i in arr do Result := Result + i; end; {测试1:} procedure TForm1.Button1Click(Sender... 阅读全文
posted @ 2008-01-15 00:16 万一 阅读(7188) 评论(11) 推荐(0)
理解 Delphi 的类(十) - 深入方法[20] - 静态数组参数
摘要://静态数组做参数, 不能这样使用: function MyFun(arr: array[0..9] of Integer): Integer; var i: Integer; begin Result := 0; for i in arr do Result := Result + i; end; //应该先把数组定义成一个类型 Type IntArray = array[... 阅读全文
posted @ 2008-01-14 23:33 万一 阅读(5928) 评论(7) 推荐(0)

上一页 1 2 3 4 5 下一页