一、面向过程
二、基于对象
三、面向对象编程
抽象:将同类事物向上抽取的过程
派生(继承): 编程中的继承指的是类和类之间的关系,称为派生。
封装:将没必要要的暴漏的细节隐藏起来。
多态:一类事物以多种形态存在设计模式
1 {*------------------------------------------------------------------------------ 2 一、建立类 3 类成员 4 属性:成员变量、字段 5 功能:方法、函数、过程、例程 6 二、建立类对象 7 8 三、对象的生命周期(对象从建立与消亡的过程) 9 3.一、构造方法 10 3.1.一、在内存中申请一个内存空间,从而实现对象的建立 11 3.1.二、 初始化类成员的功能 12 3.二、对象销毁 13 3.2.一、free; 14 3.2.二、Destroy; 15 3.2.三、freeAndNil; 16 3.2.四、nil (空值null); 17 3.三、Self //表示本类对象 18 3.3.一、解决命名冲突 19 20 四、Delphi 中的单元的概念 21 -------------------------------------------------------------------------------}
1 type 2 TUser = class(TObject) //类 全部类继承了TObject 3 FName : string; //字段 4 procedure SetName(Name:string); //声明定义 5 destructor Destroy();override; //销毁 (销毁 关键字 destructor) 6 constructor Aaa(Name:string); //定义构建方法 (建立 关键字 constructor) 7 end; 8 //调用 9 constructor TUser.Aaa(Name: string); //构造方法 10 begin 11 //初始化 12 Self.FName := Name; 13 14 end; 15 16 destructor TUser.Destroy; //销毁对象的方法 17 begin 18 //调用父类销毁对象的方法 19 Writeln('调用父类销毁对象的方法'); 20 inherited; 21 end; 22 23 procedure TUser.SetName(Name: string); 24 begin 25 Self.FName := Name; 26 end; 27 var 28 User:TUser; 29 begin 30 //经过内的构造方法,建立一个类的对象 31 User := TUser.Aaa('aa'); // 'aa' 传参 32 // User := TUser.Create; //向内存中申请一块内存地址空间 (对象生成) 33 // User.FName := '小强'; 34 Writeln(User.FName); 35 // User.Free; //销毁对象(释放对象) :(调用TUser.Destroy方法)模板方法设计模式 36 FreeAndNil(User);//销毁对象 37 Readln; 38 end.
四、单元属性ide
Project.exe函数
1 {*------------------------------------------------------------------------------ 2 一、单元 3 1.一、方便代码维护(单元的优势) 4 1.二、对代码进行分门别类 (单元的优势) 5 1.三、引用(UTool in 'UTool.pas';) 6 二、属性(类) 7 2.一、访问可见性(访问权限修饰符)(对字段、域权限限制) 8 一、private (私有的) 9 二、public (公有的) 10 三、protected (受保护的) 11 若是某个字段或者方法被该关键字修饰,该字段在其子类中访问 12 四、Publicshed 13 -------------------------------------------------------------------------------} 14 15 uses 16 System.SysUtils, 17 UTool in 'UTool.pas', 18 UTool2 in 'UTool2.pas'; //窗体初始化时引用 19 20 var 21 Person : TPerson; 22 23 begin 24 // Writeln(UName); 25 // Writeln(UAge); //没法调用 26 Person := TPerson.Create; 27 Writeln(Person.Name); 28 Writeln('------------------------'); 29 Writeln(Person.Age); 30 Person.AgeChange := 18; 31 Writeln(Person.AgeChange); 32 // Person.Age := 18; 33 // Writeln(Person.Age); 34 Readln; 35 36 end.
UTool.passpa
1 interface 2 3 uses 4 UTool2; //引用其余单元 5 6 //声明区域 7 var 8 UName : string; 9 type 10 TPerson = class 11 private 12 FName:string; //字段、域(通常状况下,不容许外界直接调用) 13 FAge : Integer; 14 function GetAge() : Integer; //声明一个函数(用于获取字段的值) 15 procedure SetAge(FAge : Integer); //修改,只能定义过程(用于修改字段的值) 16 17 public //属性内容 18 property Name : string read FName write FName; //property关键字 19 property Age : Integer read GetAge; //该属性为只读属性 20 property AgeChange : Integer read GetAge write SetAge; //该属性为可写属性 21 22 23 end; 24 25 implementation 26 //实现区域 27 //var //在实现区域内部声明的只能在本单元内使用 28 // UAge : Integer; //只能在本单元使用 29 30 { TPerson } 31 32 function TPerson.GetAge: Integer; 33 begin 34 Result := Self.FAge; 35 end; 36 37 procedure TPerson.SetAge(FAge: Integer); 38 begin 39 Self.FAge := FAge; 40 end; 41 42 initialization 43 //初始化区域 44 UName := '小强'; 45 46 //UAge := 18; 47 finalization 48 //销毁区域 49 //UName := ''; 50 //UAge := 0; 51 end.