1、面向过程
2、基于对象
3、面向对象

  抽象:将同类事物向上抽取的过程
  派生(继承): 编程中的继承指的是类和类之间的关系,称为派生。
  封装:将不必要的暴漏的细节隐藏起来。
  多态:一类事物以多种形态存在

 {*------------------------------------------------------------------------------
1、创建类
类成员
属性:成员变量、字段
功能:方法、函数、过程、例程
2、创建类对象 3、对象的生命周期(对象从创建与消亡的过程)
3.1、构造方法
3.1.1、在内存中申请一个内存空间,从而实现对象的创建
3.1.2、 初始化类成员的功能
3.2、对象销毁
3.2.1、free;
3.2.2、Destroy;
3.2.3、freeAndNil;
3.2.4、nil (空值null);
3.3、Self //表示本类对象
3.3.1、解决命名冲突 4、Delphi 中的单元的概念
-------------------------------------------------------------------------------}
 type
TUser = class(TObject) //类 所有类继承了TObject
FName : string; //字段
procedure SetName(Name:string); //声明定义
destructor Destroy();override; //销毁 (销毁 关键字 destructor)
constructor Aaa(Name:string); //定义构建方法 (创建 关键字 constructor)
end;
//调用
constructor TUser.Aaa(Name: string); //构造方法
begin
//初始化
Self.FName := Name; end; destructor TUser.Destroy; //销毁对象的方法
begin
//调用父类销毁对象的方法
Writeln('调用父类销毁对象的方法');
inherited;
end; procedure TUser.SetName(Name: string);
begin
Self.FName := Name;
end;
var
User:TUser;
begin
//通过内的构造方法,创建一个类的对象
User := TUser.Aaa('aa'); // 'aa' 传参
// User := TUser.Create; //向内存中申请一块内存地址空间 (对象生成)
// User.FName := '小强';
Writeln(User.FName);
// User.Free; //销毁对象(释放对象) :(调用TUser.Destroy方法)模板方法设计模式
FreeAndNil(User);//销毁对象
Readln;
end.

4、单元属性

Project.exe

 {*------------------------------------------------------------------------------
1、单元
1.1、方便代码维护(单元的优点)
1.2、对代码进行分门别类 (单元的优点)
1.3、引用(UTool in 'UTool.pas';)
2、属性(类)
2.1、访问可见性(访问权限修饰符)(对字段、域权限限制)
1、private (私有的)
2、public (公有的)
3、protected (受保护的)
如果某个字段或者方法被该关键字修饰,该字段在其子类中访问
4、Publicshed
-------------------------------------------------------------------------------} uses
System.SysUtils,
UTool in 'UTool.pas',
UTool2 in 'UTool2.pas'; //窗体初始化时引用 var
Person : TPerson; begin
// Writeln(UName);
// Writeln(UAge); //无法调用
Person := TPerson.Create;
Writeln(Person.Name);
Writeln('------------------------');
Writeln(Person.Age);
Person.AgeChange := ;
Writeln(Person.AgeChange);
// Person.Age := 18;
// Writeln(Person.Age);
Readln; end.

 UTool.pas

 interface

 uses
UTool2; //引用其他单元 //声明区域
var
UName : string;
type
TPerson = class
private
FName:string; //字段、域(一般情况下,不允许外界直接调用)
FAge : Integer;
function GetAge() : Integer; //声明一个函数(用于获取字段的值)
procedure SetAge(FAge : Integer); //修改,只能定义过程(用于修改字段的值) public //属性内容
property Name : string read FName write FName; //property关键字
property Age : Integer read GetAge; //该属性为只读属性
property AgeChange : Integer read GetAge write SetAge; //该属性为可写属性 end; implementation
//实现区域
//var //在实现区域内部声明的只能在本单元内使用
// UAge : Integer; //只能在本单元使用 { TPerson } function TPerson.GetAge: Integer;
begin
Result := Self.FAge;
end; procedure TPerson.SetAge(FAge: Integer);
begin
Self.FAge := FAge;
end; initialization
//初始化区域
UName := '小强'; //UAge := 18;
finalization
//销毁区域
//UName := '';
//UAge := 0;
end.

Delphi-面向对象的更多相关文章

  1. Delphi面向对象编程

    一.面向对象介绍 OOP是使用独立的对象(包含数据和代码)作为应用程序模块的范例.虽然OOP不能使得代码容易编写,但是它能够使得代码易于维护.将数据和代码结合在一起,能够使定位和修复错误的工作简单化, ...

  2. Delphi面向对象的编程思想

    第一章.建立面向对象的新思维 1.1.1历史背景 目前对象技术的前沿课题包括设计模式.分布式对象系统.和基于网络的对象应用等 目前面向对象的语言包含4个基本的分支: 1.基于Smalltalk的:包括 ...

  3. Delphi面向对象---接口

    从Delphi3开始支持接口.接口定义了能够与一个对象进行交互操作的一组过程和函数.对一个接口进行定义包含两个方面的内容: 1)一方面是实现这个接口 2)另一方面是定义接口的客户 一个类能够实现多个接 ...

  4. Delphi面向对象的可见性表示符

    Delphi能通过在声明域和方法的时候用protected.private.public.published和automated指示符来对对象提供进一步的控制.使用这些关键字的语法如下 TSomeOb ...

  5. Delphi面向对象的方法

    方法是属于一个给定对象的过程和函数,方法反映的是对象的行为而不是数据,前一篇提到的对象的两个重要的方法:构造方法和析构方法. 为了使对象能执行各种功能,你能在对象中定制方法 创建一个方法用两个步骤,首 ...

  6. Delphi面向对象设计的经验原则(61条)

    (1)所有数据都应该隐藏在所在的类的内部. (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者. (3)尽量减少类的协议中的消息. (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深 ...

  7. 买了本Delphi面向对象编程思想,正在看,产生些问题。

    1:第33页说,Delphi通过调用类的一个构造函数来建立一个对象的实例,对象至少有一个create()的构造函数,使用时候写MyObject:=TmyObject.create即可.   但是第37 ...

  8. delphi面向对象 继承窗体

    delphi继承form TFrmBase = class(TForm) procedure FormShow(Sender: TObject); end; procedure TFrmBase.Fo ...

  9. delphi 面向对象实用技能教学二(封装)

    面向对象编程手法,是一项综合技能,单独把谁拿出来说都不合适.本次重写 TSimpleThread ,使其能在 D7 下运行. 基于 TSimpleThread ,重磅推出 TSimpleUI.ExeP ...

  10. Delphi面向对象的属性

    可以把属性看成是能对类中的数据进行修改和执行代码的特殊的辅助域.对于组件来说,属性就是列在Object Inspector窗口的内容.下面的例子定义了一个有属性的简单对象 TMyObject = cl ...

随机推荐

  1. 利用开源软件自建WAF系统--OpenResty+unixhot

    目录 介绍 安装Openresty 修改nginx.conf 部署WAF 测试WAF 简介:利用OpenResty+unixhot自建WAF系统 介绍   OpenResty是一个基于 Nginx 与 ...

  2. 8.gitlab 邮件设置

    这个我没做实验.  视屏里面说的 126的 邮箱限制少点. 建议用126的 邮箱. 参考视屏  jenkins+gitlab+插件\1\7(07-gitlab备份恢复)   最后的一点部分. 需要在配 ...

  3. cidr地址段

    CIDR采用各种长度的"网络前缀"来代替分类地址中的网络号和子网号,其格式为:IP地址 = {<网络前缀>,<主机号>}.为了区分网络前缀,通常采用&quo ...

  4. 关于appium的简单理解

    搭建好appium环境后,要学会定位app页面上的元素.下面是2款元素定位工具 uiautomatorviewer   -- Android SDK自带的元素定位工具,由Google开发的 Inspe ...

  5. IntelliJ IDEA安装与破解教程(一)

    官网地址:https://www.jetbrains.com/idea/ IntelliJ IDEA分为:旗舰版(Ultimate).社区版(Community) 旗舰版是收费的,社区版则是免费的.旗 ...

  6. SQL Server 数据的增删改

    1. 使用Insert语句添加数据 (1)如果要向表中每一列都添加数据,则可以省略列明,直接将值按照顺序写入并用逗号隔开就行. use Howie ','JD','mars','CN','sh') ( ...

  7. 杂记(C语言中的不知怎么归类的细小点。)

    1.int a; printf("%d",2a); 从数学上讲,没有丝毫问题,但是在计算机上,就无法识别!        纠正:应写成2*a. 2.关于输出结果保留一位小数的:不应 ...

  8. 消息队列的使用<一>:介绍、使用场景和JMS概念知识

    目录 介绍 消息队列的理解 举个栗子 使用场景 消息队列的模型与概念理解 JMS模型 基本概念: 内容: JMS定义的消息结构: PTP式消息传递 PUB/SUB式消息传递 可靠性机制 事务 消息持久 ...

  9. Wireshark使用入门

    目录 1. Wireshark介绍 1.1 客户端界面 1.2 Display Filter 的常用方法 1.3 界面上一些小TIPS 2. 使用Wireshark分析TCP三次握手过程 2.1 三次 ...

  10. python-7-数据结构与类型转换

    前言 python除了前面所说的基础类型,我们这里也需要讲解下数据结构,数据结构里面存放的是基础类型,如数字等同时也可以嵌套. 不可变数据(3 个):Number(数字).String(字符串).Tu ...