一、面向過程
二、基於對象
三、面向對象編程
抽象:將同類事物向上抽取的過程
派生(繼承): 編程中的繼承指的是類和類之間的關係,稱爲派生。
封裝:將沒必要要的暴漏的細節隱藏起來。
多態:一類事物以多種形態存在設計模式
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.