导航:首页 > 源码编译 > 面向对象怎么编译

面向对象怎么编译

发布时间:2023-07-19 01:54:35

A. Delphi面向对象的编程方法(一)

Delphi的编程语言是以Pascal为基础的 Pascal语言具有可读性好 编写容易的特点 这使得它很适合作为基础的开发语言 同时 使用编译器创建的应用程序只生成单个可执行文件( EXE) 正是这种结合 使得Pascal成为Delphi这种先进开发环境的编程语言

本章中 我们将讨论Object Pascal的主要特点 并讲解如何在事件处理过程和其他应用程序中 使用它来编制程序代码握液 本章将讲解Delphi应用程序中最常用的Object Pascal语法 而不是Pascal语言的一切细节 如果您完全不熟悉Pascal编程 请参阅一些基础的Pascal教程 如果您具有编程经验 并能熟练地使用其他流行程序语言 您将在本章的Object Pascal中发现一些相同的概念 如果您已经熟悉了Borland Pascal 就可以快速浏览或跳过本章

编写Object Pascal程序代码

在本章中 我们将从熟悉Pascal编程的角度 配合实例 讲解Object Pascal编程的基本方法

在编写自己的Object Pascal程序时 要注意程序的可读性 Pascal语言是英式结构语言 在程序中选择合适的缩排 大小写风格 并在需要时将程序代码分行 会使得程序代码能够很容易地被自己和他人读懂 一般的程序员都有这样的体验 如果不给程序加上适当的注解 一段时间后 自己也难以理清程序的流程 给程序及时地加上芹宏注释是良好的编程习惯 Delphi的注释需要加注在{}之间 编辑器会把它们处理成为空白 Delphi保留了Borland Pascal编辑器的风格 关键字采用黑体字 被注释的部分会变暗 这使得编程风格良好 易读易写

编写赋值语句

在事件处理过程中 最常用到的工作就是把一个新值赋给一个属性或变量 在设计用户界面时 可以使用Object Inspector(Object Inspector)来改变其属性 但有时需要在程序执行时改变属性的值 而且有些属性只能在执行时改变 这些属性在Delphi的在线帮助的 Proprety 主题中被标为执行期属性 进行这种改变 就必须使用赋值语句

下文的赋值语句表征一个OnClick事件 当按钮按动后 将编辑框部件Edit 的Color属性置为clRed:procere TForm Button Click(Sender: TObject);beginEdit Color := clRed;end;

当按动按钮后赋值语句被执行 编辑框变成红色

在语句中 部件的名称在属性前 中间用 表示属性的所属关系 这样就准确地指定了要将clRed值赋给哪一部件的哪一属性 赋值号为 := 不论给属性还是给变量赋值 都是将右边的值赋给左边的属性或变量

当将一个属性值 变量 常量或文本数据赋给属性或变量时 所赋值的类型和接受此值的属性或变量的类型应相同或兼容 一个属性或变量的类型定义了此属性或变量的可能值集合 也定义了程序代码可以执行的运算 在前边的例程中 编辑框部件的Color属性和clRed的类型都是TColor 可以在在线帮助中找到一个属性的类型 另外一种方法是在Object Inspector中选定该属性值段 并按下F 键 则类型将在属性说明的结尾处列出 例如Color属性列出下边的语句

Property Color : TColor;

有些属性是只读(Read Only)的 它们只能被读取 不能被改变 请查阅在线帮助 在Delphi中这些只读属性都有注解

标识符的说明与使用嫌皮册

标识符是Delphi应用程序中一些量的名称 这些量包括变量(var) 常量(const) 类型(type) 过程(procere) 方法(Method)及其他 Object Pascal 在应用标识符时 必须首先说明它们 Object Pascal是强类型语言 它的编译器可以检查确保赋给变量或属性的值是正确的类型 以便于您改正错误 因为Object Pascal是编译语言 所以Delphi的执行速度要比使用解释语言快得多 在使用标识符前说明它们 可以减少程序错误并增加代码的效率

变量

变量是程序代码中代表一个内存地址的标识符 而此地址的内存内容在程序代码执行时可以被改变 在使用变量前必须对它进行说明 即对它进行命名 并说明它的类型 在所有变量说明以前加上保留字var 变量说明左边是变量的名称 右边则是该变量的类型 中间用(:)隔开

varValue Sum : Integer;Line : String;

在窗体中加入一个名称为Edit 的编辑框 再加入一个名称(属性Name)为Add的按钮部件 并建立如下的事件处理过程

procere TForm addClick(Sender: TObject);varX Y: Integer;beginX := ;Y := ;Edit Text := IntToStr(X + Y);end;

在本例中 当按动ADD按钮时 编辑框中显示值 在Object Pascal中 必须确保变量或属性被赋予类型相同或兼容的值 您可以尝试将赋给X的值改为 或去掉IntToStr函数 在编译时会出现类型不匹配的错误 这也说明了Object Pascal强类型语言的特点 Object Pascal有多个预定义的数据类型 您可以说明任何这些类型的变量

整形 Integer的范围是 到 占 字节的内存 Shortint从 到 占 字节内存 Longint从 到 占 字节内存 Byte从 到 占 字节 Word从 到 占 字节内存 它们都是没有小数部分的数字

实型 Single可以包含 到 位有效小数部分 占用 字节的内存 Double类可以包含 到 位有效小数部分 占用 字节的内存 Extended类型包含 到 位有效小数部分 占用 字节内存 Comp可以包含 到 位有效小数部分 占用 字节内存 以上实数类型只有在 / 选项[N+]打开才可以使用 Real可以包含 到 位有效小数部分 占用 字节内存 它只有在和以前Borland Pascal兼容的情况下才使用 否则应使用Double或Extended

布尔型 Boolean 只包含true或False两个值 占用 字节内存

字符型 Char 一个ASCII字符 字符串类型String一串最长可达 个ASCII字符

指针型 Pointer 可以指向任何特定类型

字符串型 PChar 是一个指向以零结尾的字符串的指针

除了预定义类型外 Delphi还有自行定义的类型 上述例程的TColor就是这种类型 此外 用户还可以定义自己的数据类型 这部分内容将在下文中详细讲述

整型类别和实型类别都各有五种类型 同一类别中 所有的类型与其他同类别的都相容 您可以将一种类型的值赋给相同类别中不同类型的变量或属性 而只需要这个值的范围在被赋值的变量或属性的可能值范围内 例如 对于一个Shortint型的变量 可以接受在 到 范围内的任意整数 例如Shortint类型的 您不能将 赋给它 因为 已经超出了Shortint的范围了 将范围检查功能打开(选用Options|Project 并在Compiler Options Page中选择Range Checking) 将会检查出一个范围错误 如果Range Checking没有被打开 那么程序代码将可以执行 但被赋值的值将不是您期望的值

在一些情况下 您可以进行不同类型的变量或属性的赋值 一般来说 可以将一个较小范围的值赋给一个较大范围的值 例如 您可以将整型值 赋给一个接受实型值的Double属性而使得值成为 但如果将一个Double类型的值赋给整形变量 则会出现类型错误 如果您不清楚类型的兼容性 可以参阅Delphi的在线帮助中 Type Compatibility and Assignment Compatibility 主题

常量

常量在说明时就被赋予了一个值 在程序执行过程中是不可改变的 下面的例子说明了三个常量

constPi = ;Answer = ;ProctName = Delphi ;

象变量一样 常量也有类型 不同的是 常量假设其类型就是常量说明中其所代表的值的类型 上文的三个常量的类型分别是real型 整形 字符串型 常量用 = 表示两边的值是相等的

过程与函数

lishixin/Article/program/Delphi/201311/8549

B. VB如何编译

VB编译方法:

编码完成后,点击文件——生成工程,即可。

VB是解释性的编程语言,安装的VB在写好代码了,以后 按F5也会自动处理的。

Visual Basic是一种由Microsoft公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。从任何标准来说,VB都是世界上使用人数最多的语言——不管是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。

C. 面向对象程序设计主要有哪些方法

程序设计主要方法有面向结构的方法和面向对象的方法。
结构化程序设计

随着计算机的价格不断下降,硬件环境不断改善,运行速度不断提升。程序越写越大,功能越来越强,讲究技巧的程序设计方法已经不能适应需求了。记得是哪本书上讲过,一个软件的开发成本是由:程序设计 30% 和程序维护 70% 构成。这是书上哗或改给出的一个理论值,但实际上,从我十几年的工作经验中,我得到的体会是:程序设计占 10%,而维护要占 90%。也许我说的还是太保守了,维护的成本还应该再提高。下面这个程序,提供了两种设计方案,大家看看哪个更好一些那?

题目:对一个数组中的100个元素,从小到大排序并显示输出。(BASIC)

方法1:冒泡法排序,同时输出。

FOR I=1 TO 100
FOR J=I+1 TO 100
IF A[I] > A[J] THEN T=A[J]: A[J]=A[I]: A[I]=T
NEXT J
? A[I]
NEXT I

方法2:冒泡法排序,然后再输出。

FOR I=1 TO 100
FOR J=I+1 TO 100
IF A[I] > A[J] THEN T=A[J]: A[J]=A[I]: A[I]=T
NEXT
NEXT

FOR I=1 TO 100
? A[I]
NEXT

显然,“方法1”比“方法2”的效率要高,运行的更快。但是,从现在的程序设计角度来看,“方法2”更高级。原因很简单:(1)功能模块分割清晰——易读;(2)也是最重要的——易维护。程序在设计阶段的时候,就要考虑以后的维护问题。比如现在是实现了在屏幕上的输出,也许将来某一天,你要修改程序,输出到打印机上、输出到绘图仪上;也许将来某一天,你学习了一个新的高级的排序方法,由“冒泡法”改进为“快速排序”、“堆排序”。那么在“方法2”的基础上进行修改,是不是就更简单了,更容易了?!这种把功能模块分离的程序设计方法,就叫“结构化程序设计”。

面向对象的程序设计

随着程序的设计的复杂性增加,结构化程序设计方法又不够用了。不够用的根本原因是“代码重用”的时候不方便。面向对象的方法诞生了,它通过继承来实现比较完善的代码重用功能。很多学生在应聘工作,面试的时候,常被问及一个问题“你来谈谈什么是面向对象的程序设计”,学生无言,回来问我,这个问题应该怎么回答。我告诉他,你只要说一句话就够了“面向对象程序设计是对数据的封装;范式(模板)的程序设计是对算法的封装。”后来再有学生遇到了这个问题,只简单的一句对答,对方就对这个学生就刮目相看了(学生后来自豪地告诉我的)。为什么那?因为只有经过彻底的体会和实践才能提炼出这个精华。

面向对象的设计方法和思想,其实早在70年代初就已经被提出来了。其目的就是:强制程乱判序必须通过函数的方式来操纵数据。这样实现了数据的封装,就避免了以前设计方法中的,任何代码都可以随便操作数据而因起的BUG,而查找修改这个BUG是非常困难的。那么你可以说,即使我不使用面向对象,当我想访问某个数据的时候,我就通过调用函数访问不就可以了吗?是的,的确可以,但并不是强制的。人都有惰性,当我想对 i 加1的时候,干吗非要调用函数呀?算了,直接i++多省事呀。呵呵,正式由于这个懒惰,当程序出BUG的时候,可就不好捉啦。而面向对象是强制性的,从编译阶段就解决了你懒惰的问题。

巧合的是,面向对象的思想,其实和我们的日常生活中处理问题是吻合的。举例来说,我打算丢掉一个茶杯,怎么扔那?太简单了,拿起茶杯,走到垃圾桶,扔!注意分析这个过程,我们是先选一个“对象”------茶杯,然后向这个对象施加一个动作——扔。每个对象所能施加在它上面的动作是有一定限制的:茶杯,可以被扔,可以被砸,可以用来喝水,可以敲它发出声音......;一张纸,可以被写字,可以撕,可以烧......。也就是说,一旦确定了一个对象,则方法也就跟着确定了。我们的日常生活就是如此。但是,大家回想一下我们程序设计和对计算机的操作,却不是这样的。拿DOS的操作来说,我要删除一个文件,方法是在DOS提示符下:c:> del 文件名<回车>。注意看这个过程,动作在前(del),对象在后(文件名),和面向对象的方法正好顺序团悔相反。那么只是一个顺序的问题,会带来什么影响那?呵呵,大家一定看到过这个现象:File not found. “啊~~~,我错了,我错了,文件名敲错了一个字母”,于是重新输入:c:> del 文件名2<回车>。不幸又发生了,计算机报告:File read only. 哈哈,痛苦吧:)。所以DOS的操作其实是违反我们日常生活中的习惯的(当然,以前谁也没有提出过异议),而现在由于使用了面向对象的设计,那么这些问题,就在编译的时候解决了,而不是在运行的时候。obj.fun(),对于这条语句,无论是对象,还是函数,如果你输入有问题,那么都会在编译的时候报告出来,方便你修改,而不是在执行的时候出错,害的你到处去捉虫子。

同时,面向对象又能解决代码重用的问题——继承。我以前写了一个“狗”的类,属性有(变量):有毛、4条腿、有翘着的尾巴(耷拉着尾巴的那是狼)、鼻子很灵敏、喜欢吃肉骨头......方法有(函数):能跑、能闻、汪汪叫......如果它去抓耗子,人家叫它“多管闲事”。好了,狗这个类写好了。但在我实际的生活中,我家养的这条狗和我以前写的这个“狗类”非常相似,只有一点点的不同,就是我的这条狗,它是:卷毛而且长长的,鼻子小,嘴小......。于是,我派生一个新的类型,叫“哈巴狗类”在“狗类”的基础上,加上新的特性。好了,程序写完了,并且是重用了以前的正确的代码——这就是面向对象程序设计的好处。我的成功只是站在了巨人的肩膀上。当然,如果你使用VC的话,重用最多的代码就是MFC的类库。

阅读全文

与面向对象怎么编译相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:142
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:732
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:141
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:890
app转账是什么 浏览:163