易语言中简化了类的创建与使用,使得面对对象编程更简单

面对对象编程,可以说是当前最流行的编程方式,当前流行的面对对象的编程语言很多,如:C++、JAVA等等。易语言3.8版推出后,同样紧跟编程语言发展的方向,也开始全面支持面对对象编程。并且在中文化编程的基础上,简化了类的创建与使用,使面对对象的编写过程变的更加简单。

1.类的插入

面对对象编程就离不开类的创建,下面首先介绍一下对象和类的区别。

对象(Object)是类(Class)的一个实例(Instance)。如果将对象比作房子,那么类就是房子的设计图纸。所以面向对象程序设计的重点是类的设计,而不是对象的设计。

易语言中,可以通过菜单“插入”→“类模块”来创建类,如图所示:

2.对象的构造和析构

创建后的类自动生成2个方法“_初始化()”和“_销毁()”。

_初始化()”方法在基于该类的对象被创建后,会被自动调用,该方法的功能相当于构造函数;“_销毁()”方法,在基于该类的对象被销毁前,会被自动调用,该方法的功能相当于析构函数。在其他面向对象编程语言中,构造和析构函数是需要程序员自己创建的,易语言中简化了这个过程。

构造函数和析构函数用于在基于该类的对象被构造(创建)和析构(销毁)时初始化和销毁数据。

而对象的构造和析构的过程是自动的,构造顺序为:先构造基类对象,再构造其继承类对象,如果类中具有对象成员,则先于其所处对象构造;析构顺序为:先析构继承类对象,再析构基类对象,如果类中具有对象成员,则在其所处对象后析构。

编程时需要做的事情就是在“_初始化()”和“_销毁()”方法中,编写基于该类的对象创建和销毁时需要执行的代码。

3.类的封装

创建一个新类后,在“类名”上按下回车键,可以定义类的私有成员。点击Ctrl+N,可以新建一个方法,在新建的方法中编辑代码,就可以实现类的一些功能。

新定义方法,可以设置“公开”属性。没有设置“公开”属性的方法,在基于该类的对象创建后是不可见的,这样可以达到信息隐藏的目的,即让类仅仅公开必须要让外界知道的内容,而隐藏其它一切内容。如图所示:

类是将数据变量和方法封装在一起的,其中方法(函数)表示了类的行为,数据变量是类的私有成员(类的属性),私有成员只能由该类本身的方法代码所访问,属于私有性质。所以提倡“对象调方法,方法改属性”。

类的封装包含以下几个方面:

  • (1)类的所有成员数据变量只能由该类本身的方法代码所访问,属于私有性质。
  • (2)在继承类中可以以“类名.方法名”的方式指定访问基础类中的方法。
  • (3)只有标记为“公开”的方法才能在类代码外部通过该类的对象实体来访问。

4.类的继承性

易语言在新创建一个类的时候,可以看到有一个名为“基类”的项目,该项目用来定义本类的基础类。该项目不填写内容的情况下,该类就没有基类;如果在该项目中填入一个类的名称,那么该类就是从填写的类中派生而来的。派生后的类具有继承性。

如,当前已经创建了一个类1,那么在创建类2的时候在基类中填入“类1”,这样类2就是类1的派生类。如图所示:

派生出的类具有继承性,如图3中,“类1”是一个基类,“类2”是“类1”的派生类,那么“类2”就继承了“类1”的所有方法。

下面用在画板中画各种图形的例程,来进一步说明类继承性。

首先创建一个基类“图形”,并创建它的各种方法。代码如下:

然后创建它的派生类:“椭圆

椭圆”是“图形”的派生类,这样“椭圆”就继承了“图形”类中的所有公开的方法,即“椭圆”也具有了“图形”中所公开的方法。这样在“椭圆”对象创建后就可以调用这些继承的方法:

可以看到“图形”类中的“取颜色()”和“取结束位置()”方法,没有设置“公开”属性,所以在基于“椭圆”(“图形”类的派生类)的对象被创建后,没有公开的方法即被隐藏起来了。

注意:

在一个派生的类中,可以直接调用其父类的方法。“椭圆”类的绘画方法中,就直接调用了其父类的“取颜色()”方法,将填充颜色取出:

这里要注意,虽然子类中可以直接调用父类的方法,但子类调用父类的方法取出和更改的都是自身的私有成员,而不能直接取得和更改父类的私有成员值。而例程中正确的设置了颜色,是由于程序中使用了覆盖。覆盖后面会详细介绍。

5.类的多态性

程序中,创建了一个类型为“图形”的数组,程序运行后,将其子类的变量依次加入到数组中,代码如下:

通过运行上述程序,可将4个子类对象变量加入到父类 “图形对象”数组对象变量中,以后程序可以通过:“图形对象[X].方法名()”来调用对应子类的不同方法。

易语言中类的多态性是指对象变量的多态性。

这种将子类变量赋值给父类变量的方法,体现了对象变量的多态性。

6.虚拟方法

虚拟方法,又称为虚函数,是一种虚拟出的方法。

虚拟方法就是允许被子类重新定义父类的方法,这就是常说的函数的覆盖(overload)。

其他编程语言中通过“virtual”关键字来定义虚函数,在易语言中可以不用定义,只要子类中有和父类参数和属性完全相同的方法,然后通过上面讲到的子类变量赋值给父类变量的作法,可以达到覆盖虚方法的目的。当然也可以定义一个抽象虚方法(纯虚函数),即一个空方法,只提供方法的框架而不编写任何代码,实现的过程完全通过子类的覆盖来实现。

例程中,“图形”基础类定义了一个“绘画()”的方法,该方法中没有任何代码,是一个抽象虚方法(纯虚函数),程序又定义了“图形”类的几个派生类,包括“直线”、“矩形”、“椭圆”和“圆角矩形”,这些派生类中,都定义了同名的“绘画()”方法,派生类的“绘画()”方法实现了在画板中画出相应的图形。

例程中,当按下鼠标并移动,则在画板中跟随鼠标移动来画出所选图形,当鼠标被松开,就在画板中确定画出指定图形,代码如下:

程序中,调用了图形对象的“绘画()”方法,而在“图形”类中的“绘画()”方法是没有编写任何代码的,在这里,它会在画板中画出各种图形,是由于其派生类中的“绘画”方法将“图形”类(它的父类)中的“绘画()”方法覆盖了,这种子类可以重新定义父类函数的特性,充分体现出了函数的多态性。这个覆盖的过程是动态的,即在编写类的时候,不定义某个方法要执行的代码,当调用此方法时,系统自动根据所调用的对象实体去调用对应的方法。

这里说继承的作用是为了代码的重用,那多态则是为了实现接口的重用。像例程中提供的绘画方法的接口,通过覆盖实现了画出多种不同的图形。

1、易语言支持类的构造、析构、继承、虚拟方法、多态、封装特性。

2、对象的构造:

构造顺序为:先构造基类对象,再构造其继承类对象,如果类中具有对象成员,则先于其所处对象构造。

3、对象的析构:

析构顺序为:先析构继承类对象,再析构基类对象,如果类中具有对象成员,则在其所处对象后析构。

4、继承:

任何类均可以指定另外一类作为其基类,继承层数不限。

5、虚拟方法:

在基类中的方法可以被其继承类中的同名方法覆盖,当调用此方法时,系统自动根据所调用的对象实体去调用对应的方法。

6、多态性:

可以将一个继承类对象赋予到其基类数据类型变量中,此时对此基类对象变量进行操作,将反映出继承类对象的特性。

7、类的封装:

  • A、类的所有成员数据变量只能由该类本身的方法代码所访问,属于私有性质。
  • B、在继承类中可以以“类名.方法名”的方式指定访问基础类中的方法。
  • C、只有标记为“公开”的方法才能在类代码外部通过该类的对象实体来访问。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • 一步一步跟我学易语言之什么是编程

    大家好,今天我们来学习一下什么是编程,如何较好地输入程序代码,还将解答一些初学者的一些常见问题. 什么是编程? 什么是编程呢?简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用程序设计语言编写程序代码,并最终得到结果的过程.下面通过分析第一个易程序,来了解什么是编程. 首先我们先来了解一下"_启动窗口"的作用吧,"_启动窗口"的作用是非常重要的,当程序启动后自动调入本窗口. 在属性表中可以看到"名称"一栏的内容为:"

  • 解决易语言编程乱码的问题

    因为易语言不支持Unicode,大家编写的程序在台湾或是香港等地使用的时候常遇到的问题就是乱码,因为那里是繁体字系统. AppLocale一款由微软出品的解决乱码的软件.微软为XP专门制作了Microsoft AppLocale这款软件,用来解决汉字的编码问题. 多语言支持工具,可以让非Unicode的软件在Windows XP/2003上运行,即可以同时执行简繁体日文等各种语言的软件:不管是日文.韩文.法文都可适用,任何文字编码的程序都借由它来正确地显示文字,享受原本只有Unicode的程序才

  • 易语言发送信息代码数字指令编程整理

    控件选中并鼠标显示四向箭头: 控件.发送信息 (274, 61440, 0) 控件.发送信息 (274, 61450, 0) 控件最大化: 控件.发送信息 (274, 61488, 0) 参数2在61488-61503都有效 移动控件: 控件.发送信息 (274, 61449, 0) 2.调整控件尺寸 调整左边: 控件.发送信息 (274, 61441, 0) 调整右边: 控件.发送信息 (274, 61442, 0) 调整顶边: 控件.发送信息 (274, 61451, 0) 控件.发送信息

  • 易语言编程基础知识

    创建一个易应用程序只需要短短几分钟的时间 - 通过在设计窗口上"绘制"诸如编辑框和按钮等组件来创建用户界面.然后,为窗口和组件设置属性以规定诸如标题.位置.尺寸等的值.最后,编写处理程序将生命真正赋于程序. 组件及事件驱动 组件及其事件驱动是使用易语言在 Windows 环境下编程的基础知识.所谓"组件",即用作组成用户图形界面的基本成员,譬如:窗口.编辑框.图片框等等.组件按可否容纳其它组件划分为容器类和非容器类.按运行时是否可能具有可视外形划分为界面类和功能类.

  • 详解易语言编程原理和方法

    这里教大家怎么使用易语言进行编程. 第一步打开易语言 第二步选择"windows窗口",然后点确定,就可以进行编程了.看下图 打开之后的界面. 拖拽红色边框的组件到windows窗口上,图一跟图二.组件分别是编辑框跟按钮. 双击按钮组件,进入写程序界面.看到下图已经写好了的.提示:这里补充一下<编辑框1.内容=""--这里的""可以填写你自己的语句,下图我没填写,不好意思>. 然后点击运行. 可以看到了程序,接下来点击按钮,就可以看到

  • 易语言是主流编程语言吗?易语言是什么

    给大家详细介绍一下易语言 a.易语言感觉就是翻译成中文版的那些英语编译语言,易语言解决的问题是没有一点英文基础的编程初学者的入门问题,所以易语言的这个优势没有任何"入流"的机会 b.企业或者社会缺的看英文文档.论文的阅读能力的人 c.程序和英语,必须好玩才好玩下去 一.简介 易语言是一门以中文作为程序代码编程语言,其以"易"著称,创始人为吴涛.易语言早期版本的名字为E语言.其最早的版本的发布可追溯至2000年9月11日.创造易语言的初衷是进行用中文来编写程序的实践,

  • 零基础易语言入门教程(二)之编程思路

    易语言简介: 易语言是一门以中文作为程序代码编程语言.以"易"著称.创始人为吴涛.早期版本的名字为E语言.易语言最早的版本的发布可追溯至2000年9月11日.创造易语言的初衷是进行用中文来编写程序的实践.从2000年至今,易语言已经发展到一定的规模,功能上.用户数量上都十分可观. 上一篇跟大家讲了零基础易语言入门教程(一)编写第一个程序,然后接下来大家应该自己把支持库和易语言组件里面的控件全部认真的看一下,下面我直接跟大家分享下易语言简单编程思路. 方法和步骤如下所示: 1.易语言程序

  • 易语言中简化了类的创建与使用,使得面对对象编程更简单

    面对对象编程,可以说是当前最流行的编程方式,当前流行的面对对象的编程语言很多,如:C++.JAVA等等.易语言3.8版推出后,同样紧跟编程语言发展的方向,也开始全面支持面对对象编程.并且在中文化编程的基础上,简化了类的创建与使用,使面对对象的编写过程变的更加简单. 1.类的插入 面对对象编程就离不开类的创建,下面首先介绍一下对象和类的区别. 对象(Object)是类(Class)的一个实例(Instance).如果将对象比作房子,那么类就是房子的设计图纸.所以面向对象程序设计的重点是类的设计,而

  • 在易语言中使用类型库的方法

    如何在易语言中使用类型库 如何在易语言中使用类型库,我们下面用一个小例程来说明,首先打开"易语言" 选择"工具"→"类型库及OCX组件-〉支持库"注册word类型库. 然后左边支持库表中会出现word的类型库 然后我们在窗体中画上两个按钮以便我们使用,至于旁边画的那个com控件我们等一下 现在我们开始写入代码,如果按照com对象的方法来操作word,我们就要先创建一个word的对象,连接"Word.Application",其

  • 易语言中的命令及操作符知识点总结

    命令由运行支持库提供给用户在程序中使用,它们被分为很多类.有些命令的最后一个参数可以被扩展,譬如"相加",它的"加数"参数可以被无限制地扩展,用作支持连续相加.这些命令在录入到程序中后在编辑窗口内其首部会显示出一个右双箭头作为标志.命令中的某些参数也有可能可以被省略,即调用时可以不提供参数数据.具体情况请参阅<支持库手册>. 下面列出所有具有操作符的命令及其操作符运算优先级,值越小运算优先级越高.优先级高的命令在计算表达式时将被先执行,同优先级的命令按顺

  • 易语言中关于“关闭”命令的数据库操作

    本命令关闭已经被打开的指定数据库.如果没有提供数据库名称,默认为关闭当前数据库.如果当前数据库被关闭,当前数据库状态值将被设置为空,此时可重新使用"置当前库"命令来进行相应设置. 语法: 无返回值 关闭 ([数据库别名或名称]) 参数名 描 述 数据库别名或名称 可选的:文本型.参数值如果被省略,默认为关闭当前数据库. 例程: 说明: 启动窗口创建完毕后打开2个数据库,按下"关闭当前库"按钮后,"关闭()"命令将关闭当前数据库:按下"关

  • 一文搞懂Go语言中文件的读写与创建

    目录 1. 文件的打开与关闭 1.1 os.open 1.2 os.OpenFile() 指定模式打开文件 2. 文件的读取 2.1 打开文件的方式读取文件中的数据 2.2 使用 bufio 整行读取文件 3. 写入文件操作 3.1 file.Write 与 file.WriteString 3.2 bufio.NewWriter 3.3 ioUtil 工具类 1. 文件的打开与关闭 1.1 os.open os.open 函数能打开一个文件 调用 close() 方法 关闭文件 //打开文件

  • 详解易语言中的数据类型

    各种数据存放在磁盘或内存中都有其不同的存放格式,因此就存在不同的数据类型.了解各种数据的特性,对编程开发来说是十分重要. 程序中经常会进行一些运算,易语言中的运算都要使用运算符进行识别处理,并通过运算表达式来完成运算操作.程序中对各数据之间的关系的描述也要通过运算符. 1.易语言的数据类型 一个程序内部应包括两个方面的内容:1.数据的描述.2.操作步骤,即对程序动作的描述. 数据是程序操作的对象,操作的结果会改变数据的内容.打个比方:要做一道菜,做菜前先选择烹饪的原材料(即对数据进行描述),然后

  • 易语言中数据库“更新索引”命令详解

    通过完全重建来更新当前数据库的当前索引. 成功返回真,失败返回假. 语法: 逻辑型 更新索引 () 例程: 说明: 打开数据库的同时,打开2个索引文件."更新索引"按钮被单击后,运行"更新索引()"命令,成功更新索引后,将当前打开的索引显示在列表框中. 以上就是易语言中数据库"更新索引"命令详解的详细内容,更多关于易语言更新索引命令的资料请关注我们其它相关文章!

  • 从C语言中读取Python 类文件对象

    问题 你要写C扩展来读取来自任何Python类文件对象中的数据(比如普通文件.StringIO对象等). 解决方案 要读取一个类文件对象的数据,你需要重复调用 read() 方法,然后正确的解码获得的数据. 下面是一个C扩展函数例子,仅仅只是读取一个类文件对象中的所有数据并将其输出到标准输出: #define CHUNK_SIZE 8192 /* Consume a "file-like" object and write bytes to stdout */ static PyObj

  • R语言中常见的几种创建矩阵形式总结

    矩阵概述 R语言的实质实质上是与matlab差不多的,都是以矩阵为基础的 在R语言中,矩阵(matrix)是将数据按行和列组织数据的一种数据对象,相当于二维数组,可以用于描述二维的数据.与向量相似,矩阵的每个元素都拥有相同的数据类型.通常用列来表示来自不同变量的数据,用行来表示相同的数据. R中创建矩阵的语法格式 在R语言中可以使用matrix()函数来创建矩阵,其语法格式如下: matrix(data=NA, nrow = 1, ncol = 1, byrow = FALSE, dimname

  • C语言中函数栈帧的创建和销毁的深层分析

    目录 一.本文目标 二.基础知识 1.寄存器 2.代码案例 3.总体栈帧概况 4.所需反汇编代码总览 三.函数栈帧创建销毁过程 1._tmainCRTStartup函数(调用main函数)栈帧的创建 2.main函数栈帧的创建 3.main函数内执行有效代码(变量) 4.Add函数栈帧的创建 5.Add函数内执行有效代码 6.Add函数栈帧的销毁 7.main函数栈帧的销毁 四.总结 一.本文目标 1.局部变量是怎么创建的? 2.为什么局部变量的值是随机值? 3.函数是怎么传参的?传参的顺序是怎

随机推荐