Delphi面向对象编程
一、面向对象介绍
OOP是使用独立的对象(包含数据和代码)作为应用程序模块的范例。虽然OOP不能使得代码容易编写,但是它能够使得代码易于维护。将数据和代码结合在一起,能够使定位和修复错误的工作简单化,并最大限度地减少对其他对象的影响,提高代码的性能。一般OOP都支持一下三个概念:
1)封装:把相关的数据和代码结合在一起,并隐藏了实现细节。封装的好处是有利于程序的模块化,并把代码和其他代码分开
2)继承:是指一个新的对象能够从父对象中获取属性和方法,这种概念能用来建立VCL这样的多层次的对象,首先建立通用对象,然后创建这些通用对象的有专用功能的子对象
3)多态性:从字面上看,是指多种形状。调用一个对象变量的方法时,实际被调用的代码与实际在变量中的对象的实例有关
二、Delphi不支持多继承
Delphi不想C++那样支持多继承,多继承是指一个对象能够继承两个不同的对象,并包含有两个父类对象的所有数据和代码
Delphi提供了两种方法来解决这个问题
1)在一个父类中包含其他的类,你能从Delphi的VCL中看到这种解决方法。
2)使用接口
三、需要了解的Delphi的面向对象相关的三个术语
1)域(field),也被称为域定义或者实例变量,域是包含在对象中的数据变量。在对象中的一个域就像是在Delphi记录一个域,在C++中它被称为数据成员
2)方法(method),属于一个对象的过程和函数名,在C++中它被称为成员函数
3)属性(property),属性是外部代码访问对象中的数据和代码的访问器,属性隐藏了一个对象的具体实现的细节
注意:最好不要直接访问对象的域,因为实现对象的细节可能改变。相反用访问器属性来访问对象,它不受对象细节的影响
四、基于对象和面向对象的编程
在某些工具中,你能操作对象但是不能创建对象,Visual Basic中的ActiveX控件(以前成为OCX)就是例子。虽然在程序中你能用ActiveX控件,但是你不能创建它,也不能派生它。这样的环境就被称为基于对象的环境
Delphi是完全的面向对象的环境,这表示在Delphi中你能用已经存在的组件创建新的对象,这些对象是可视的或者不可视的,甚至可以是设计时的窗体
Delphi面向对象编程的更多相关文章
- 买了本Delphi面向对象编程思想,正在看,产生些问题。
1:第33页说,Delphi通过调用类的一个构造函数来建立一个对象的实例,对象至少有一个create()的构造函数,使用时候写MyObject:=TmyObject.create即可. 但是第37 ...
- Delphi面向对象的编程思想
第一章.建立面向对象的新思维 1.1.1历史背景 目前对象技术的前沿课题包括设计模式.分布式对象系统.和基于网络的对象应用等 目前面向对象的语言包含4个基本的分支: 1.基于Smalltalk的:包括 ...
- Delphi_09_Delphi_Object_Pascal_面向对象编程
今天这里讨论一下Delphi中的面向对象编程,这里不做过多过细的讨论,主要做提纲挈领的描述,帮助自己抓做重点. 本随笔分为两部分: 一.面向对象编程 二.面向对象编程详细描述 ------------ ...
- Delphi COM编程学习笔记(1)
释放接口对象,既不是调用MyObj.Free,也不是MyObj.Release;破坏对象的正确方法是将它们设置为nil:MyInterface := nil; 一个接口不能离开实现它的对象而独立存活. ...
- angular2系列教程(六)两种pipe:函数式编程与面向对象编程
今天,我们要讲的是angualr2的pipe这个知识点. 例子
- 带你一分钟理解闭包--js面向对象编程
上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...
- PHP 面向对象编程和设计模式 (1/5) - 抽象类、对象接口、instanceof 和契约式编程
PHP高级程序设计 学习笔记 2014.06.09 什么是面向对象编程 面向对象编程(Object Oriented Programming,OOP)是一种计算机编程架构.OOP 的一条基本原则是计算 ...
- python基础-面向对象编程
一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 ...
- 面向对象编程(OOP)
什么是面向对象编程,对于面向对象编程与面向过程编程的解释随处可见,个人认为对面向对象编程解释最好的一个定义是:依赖倒转原则是面向对象编程的标志,面向对象编程是一种思想,无论使用哪一种编程语言,如果在编 ...
随机推荐
- python 正则表达式点号与'\n'符号的问题
遇到了一个小虫,特记录之. 1.正则表达式及英文的处理如下: >>> import re >>> b='adfasdfasf<1safadsaf>23w ...
- tomcat 访问软连接
Linux创建软连接: ln -s 源文件 目标文件 tomcat安装目录 / conf目录下的:context.xml文件在 <Context />; 里面加上 allowLinking ...
- ubuntu set ntpdate
1. 安装ntpdate工具 # sudo apt-get install ntpdate 2. 设置系统时间与网络时间同步 # ntpdate cn.pool.ntp.org 3. 将系统时间 ...
- CSS3 text-overflow 属性
1. <!DOCTYPE html> <html> <head> <style> div.test { white-space:nowrap; widt ...
- Expression Add Operators
Given a string that contains only digits 0-9 and a target value, return all possibilities to add bin ...
- android studio插件提升工作效率
SonarLint 代码质量管理插件 ButterKnife Zelezny ButterKnife 生成器,快速根据布局文件生成属性对象. SelectorChapek 设计师给我们提供好了各种资源 ...
- Zookeeper服务常用的操作命令
Zookeeper服务安装之后,一般会在这个服务的基础之上安装其他的大数据平台,其他的框架一般会提供很多接口对Zookeeper中的内容进行一定的操作,但是功能相对单一,所以有些时候,有必要我们自己登 ...
- yum简单安装salt master与minion
首先得先安装epel的yum源: rpm -ivh http://mirrors.skyshe.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm 1.SaltS ...
- Mysql 基础 高级查询
在西面内容中 car 和 nation 都表示 表名 1.无论 高级查询还是简单查询 都用 select.. from..语句 from 后面 加表名 可以使一张表也可以是 ...
- 【linux】虚拟机安装centos后ping ip地址出现错误:Network is unreachable
来源:https://my.oschina.net/stonezing/blog/515480 方案一: 进入/etc/sysconfig/network-scripts/ 查看这下面的文件 每个人的 ...