
OOP
seagull327
若大的世界
展开
-
Delphi 面向对象编程思想读书笔记
delphi 方法的覆盖和隐藏和重载通过覆盖一个方法可以实现OOP的多态性的概念。通过覆盖方法可以在不同的实现类中有不同的行为。Delphi中能够被覆盖的方法限定为Virtual和Dynamic的方法。为了覆盖一个方法,在派生类中用Override代替上面的标识符。注意:在声明方法的时候,如果派生类中的方法名没有带Override,但是名称和父类的相同。这个时候派生类中转载 2012-09-12 21:05:06 · 658 阅读 · 0 评论 -
变体类型作参数一例
function FunArrConst(const Value: array of const):string;var i: Integer; OrigNum:string;begin for i := Low(Value) to High(Value) do with Value[i] do case VType of vtAnsiStrin原创 2013-09-26 01:15:35 · 796 阅读 · 0 评论 -
Class Demo
TcustCls = class private Fx, Fy: Integer; Fs: string; public procedure outPut(x, y: Integer; s: string); end;var Form1: TForm1;implementation{$R *.dfm}procedure Tcustcls.o原创 2013-10-11 22:49:17 · 629 阅读 · 0 评论 -
Class Demo [输出文字到桌面]
type TcustCls = class private Fx, Fy: Integer; Fs: string; public procedure outPut(x, y: Cardinal; s: string); end;procedure Tcustcls.outPut(x, y: Cardinal; s: string);var cvs原创 2013-10-13 13:37:40 · 824 阅读 · 0 评论 -
使用override需要注意的地方
使用override需要注意的地方 在override时,如果override的是procedure,则加上关键字inherited; 就会执行父类同名procedure的所有过程,然后再执行子类中特有的过程。如果override的是function则不会执行父类中同名function的内容转载 2013-10-16 01:26:29 · 976 阅读 · 0 评论 -
类引用类型
类引用类型声明 以上讲到的类类型,一般不能直接对类类型操作,而只能对类的实例即对象操作。只有类方法以及类的构造和析构可以直接作用于类本身。那么类引用类型是一种什么样的数据类型呢?类引用类型实际上就是指向某种类类型的指针,用这个指针可以引用任何同类型的类。 类引用类型的声明语法如下: Type TClassRef=Class of Tobject; 上例中,声明了转载 2013-10-29 23:56:45 · 1116 阅读 · 0 评论 -
类事件
TcusCls = class private FonEvent: TNotifyEvent; published property onMsg: TNotifyEvent read FonEvent write FonEvent; public procedure Cusevent(Sender: TObject); end;procedure T原创 2013-10-30 13:55:08 · 800 阅读 · 0 评论 -
类事件栗子
TonMsg = procedure(s: string) of object; Tman = class private fAge: integer; fonMsg: TonMsg; procedure setFage(iAge: integer); published property onMsg: TonMsg read fonMsg write原创 2013-10-30 21:02:56 · 574 阅读 · 0 评论 -
初写类
pRecData = ^TRecData; tRecData = record Caption: string[15]; Level: Integer; end; myCls = class private fMyrec: PRecData; public function Test: string; virtual; property原创 2013-09-27 01:55:32 · 575 阅读 · 0 评论 -
什么时候使用接口什么时候使用抽象类[转载]
什么时候使用接口什么时候使用抽象在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程我想就是指按照这种思想来编程吧!实际上,转载 2013-11-07 01:14:13 · 1414 阅读 · 0 评论 -
Dellphi随记
全局变量是有范围的:1、工程范围内,应定义一个单元,专门存放变量;所有的单元uses该单元;2、单元内全局变量,放在单元的 private中声明的变量,只能在本单元内使用;3、方法内的全局变量,在方法的Begin之前声明,它只能在本方法内使用,本单元调用其它方法时,它对于其它方法,就是全局变量。原创 2014-11-19 01:05:20 · 1258 阅读 · 0 评论 -
面向对象
面向对象1.1 面向对象概念1.1.1理解面向对象1) 面向对象是相对面向过程而言2) 面向对象和面向过程都是一种思想3) 面向过程强调的是功能行为4) 面向对象将功能封装进对象,强调具备了功能的对象。5) 面向对象是基于面向过程的。1.1.2面向对象的特点1)转载 2013-09-20 14:32:19 · 552 阅读 · 0 评论 -
Delphi中Create(nil),Create(self),Create(Application)区别
Create(nil);//需要自己释放 Create(Self);//当Self释放时自动触发释放Create(Application);//当Application释放时自动释放Create(nil);//这种方式创建的对象要自己手工进行FREE才会回收内存,其他很多内存泄漏就是忘了手工释放内存Create(Self);//由self对象负责释放创建的对象,只要self没有释放掉,转载 2013-02-19 14:52:09 · 5496 阅读 · 0 评论 -
什么是多态?
多态的本质就是将子类类型的指针赋值给父类类型的指针。多态则是为了实现另一个目的——接口重用!多态性,这个面向对象编程领域的核心概念,本身的内容博大精深,要以一文说清楚实在是不太可能。加之作者本人也还在不断学习中,水平有限。因此本文只能描一下多态的轮廓,使读者能够了解个大概。如果有描的不准的地方,欢迎指出,或与作者探讨 首先,什么是多态(Polymorphisn)?转载 2013-03-14 00:04:35 · 967 阅读 · 0 评论 -
Delphi中Self和Sender的区别
在事件处理程序参数表中,至少含有一个参数Sender,它代表触发事件处理程序的构件,如在上例中,Sender就指Button2,有了Sender参数,可以使多个构件共用相同的事件处理程序,如下例: Procedure Tform1.Buttonclick(Sender:Tobject); Begin If sender=button1 then Label转载 2012-10-10 00:39:15 · 2915 阅读 · 0 评论 -
Delphi 中的自定义类笔记
类的声明有两种声明办法一、自定义类的父类delphi内建类type 类名 = class父类)( 成员表达式end;(1)保留字Class说明该类是dephi内建类,将继承父类的属性和方法(2)“父类”默认是delphi的祖先类Tobject二、完全自定义的类Type 类名 = object父类)( 成员表达式End;(1)转载 2012-10-10 00:43:23 · 1067 阅读 · 0 评论 -
“类引用”概念
“类引用”概念 “类引用”不过是内存中的某个区域,其中包含了相关类的信息,这和类的类型定义是一回事。当用VCL流系统或RegisterClass()函数注册这个类时,类引用就会进入内存。FindClass()函数查找内存区域,定位某个指定类名的类,并返回一个指向那个位置的指针,这不同于类实例。类实例通常是创建于调用构造函数时。例如:TChildFormClass =转载 2012-09-19 15:52:37 · 732 阅读 · 0 评论 -
property
interfacetype TPerson = class(TObject) private //私有域 FName: string; FAge: Integer; procedure SetName(const strName: string); procedure SetAge(const intAge: Integer);转载 2012-09-19 21:02:41 · 1138 阅读 · 0 评论 -
Delphi属性Property学习应用总结
Delphi属性Property学习应用总结Property是一个很有意思的语法特性,它使得方法具有了字段的调用特征,并赋予字段执行动作的能力。如果你使用过C++ Builder来写基于VCL的程序,我想很多人都会注意到这样一点,比如:edt.Text = "test"; 这个时候edt文本框的内容会随之改变,但是“理论”上Text应该只是改变了Text所在的内存数据而已,为什么会导致转载 2012-09-20 14:13:20 · 9088 阅读 · 2 评论 -
初探类的字段.属性.方法.事件
TmyEvent = procedure of object; TmyClass = class private Fage: Integer; FonHundred: TmyEvent; procedure SetAge(const Value: Integer); public procedure SetOnHundred1;原创 2012-12-25 23:11:31 · 810 阅读 · 0 评论 -
Delphi 事件 --事件原来是函数指针,同时是个属性
总结一下在Delphi中如何使用Poperty这一语法特性。如果学习过C#的朋友应该会很容易理解,因为C#的属性就是学习自Delphi,毕竟C#和Delphi是同一个设计者。定义一个属性Property的基本格式如下:property 属性名 : 属性值类型 read 属性读函数 write 属性写函数这里简单解释一下:1。Property是属性定义关键字。2。属性的特征类似于转载 2013-01-03 20:41:01 · 826 阅读 · 0 评论 -
判断对象指针是否可用
在Object Pascal中,一个类可以有两种类型的方法,一种称为对象方法(Object Method),另一种是类方法(Class Method)。所谓对象方法,指的是方法的定义是针对对象(或称实例)的,因此调用该方法需要基于某个对象(或称实例),比如类的析构函数Destroy就是一个对象方法(其实我们经常用到的绝大部分方法都是对象方法)。而类方法,指的是方法的定义是基于一类对象而言,因此调用转载 2013-01-07 10:54:32 · 1061 阅读 · 0 评论 -
Class Demo
TmyCls=class private i:integer; s:TStrings; public procedure abc; end;var Form1: TForm1;implementation{$R *.dfm} procedure TmyCls.abc; begin end;procedure TForm1.Button1Click(原创 2013-01-09 12:17:45 · 884 阅读 · 1 评论 -
custom Class
type TMonth = 1..12; Tdate = 1..31; Ta = class private Fyear: Integer; Fmonth: TMonth; Fdate: Tdate; public procedure GetDate(var aYear: Integer; var Amonth: TMonth; var Adat原创 2013-01-13 15:47:25 · 1153 阅读 · 0 评论 -
Free
1、在方法中创建,在方法的收尾时.Free。2、在单元中创建,在单元的释放时.Free。二、Delphi有优化代码的功能,一般情况下,即使你不写Free。在程序结束时,它会释放的。三、写Free是程序员的一个良好的习惯。如果你的程序不是正常退出,就会造成内存被占用。四、对象的创建,如果寄宿在Form(父控件)上,Form释放时,它同时被释放,特别是无寄宿关系(父控件)的,一定要在不转载 2015-04-09 01:00:03 · 770 阅读 · 0 评论