|
1、面向过程 2、基于对象 3、面向对象
抽象:将同类事物向上抽取的过程 派生(继承): 编程中的继承指的是类和类之间的关系,称为派生。 封装:将不必要的暴漏的细节隐藏起来。 多态:一类事物以多种形态存在
1 {*------------------------------------------------------------------------------
2 1、创建类
3 类成员
4 属性:成员变量、字段
5 功能:方法、函数、过程、例程
6 2、创建类对象
7
8 3、对象的生命周期(对象从创建与消亡的过程)
9 3.1、构造方法
10 3.1.1、在内存中申请一个内存空间,从而实现对象的创建
11 3.1.2、 初始化类成员的功能
12 3.2、对象销毁
13 3.2.1、free;
14 3.2.2、Destroy;
15 3.2.3、freeAndNil;
16 3.2.4、nil (空值null);
17 3.3、Self //表示本类对象
18 3.3.1、解决命名冲突
19
20 4、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.
4、单元属性
Project.exe
1 {*------------------------------------------------------------------------------
2 1、单元
3 1.1、方便代码维护(单元的优点)
4 1.2、对代码进行分门别类 (单元的优点)
5 1.3、引用(UTool in 'UTool.pas';)
6 2、属性(类)
7 2.1、访问可见性(访问权限修饰符)(对字段、域权限限制)
8 1、private (私有的)
9 2、public (公有的)
10 3、protected (受保护的)
11 如果某个字段或者方法被该关键字修饰,该字段在其子类中访问
12 4、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.pas
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.
来源:https://www.cnblogs.com/rise-home/p/11975908.html |