zoukankan      html  css  js  c++  java
  • Delphi面向对象的编程思想

    第一章、建立面向对象的新思维

    1.1.1历史背景

    目前对象技术的前沿课题包括设计模式、分布式对象系统、和基于网络的对象应用等

    目前面向对象的语言包含4个基本的分支:

    1.基于Smalltalk的:包括Smalltalk的5个版本,以Smalltalk-80为代表

    2.基于C的:包括Objective-C、C++、Java、C#.

    3.基于LISP的:包括Flavors、XLISP、LOOPS、CLOS。

    4.基于PASCAL的:包括Delphi(Object Pascal)、Turbo Pascal、Eiffel、Ada95

    1.1.2面向过程和面向对象

    在面向对象编程中,程序被看做是相互协作的对象的集合,每个对象都是某个类的实例,所有的类构成一个通过继承关系相联系的层次结构。面向对象的语言常常具有以下特征:

    对象生成功能、消息传递机制、类和遗传机制。

    面向过程编程模式,如下图所示。

    在这种编程模式中,数据和函数是分开的,即程序员看到的是函数或过程的集合以及单独的一批数据。程序的处理过程如下:

    参数输入-->|函数/过程代码|-->结果输出

    为实现某个功能,参数被传入某个处理过程,最后传回计算结果

    面向对象编程模式如下图:

    在这种模式中,函数和它需要存取的数据封装在称为对象的包中。对象之间的数据访问是间接的,是通过接口进行的。我们可以将对象看做是鸡蛋,蛋黄是数据;蛋清是访问数据的函数;蛋壳代表接口(即那些公开或公布的方法和属性)。蛋壳接口隐匿了函数和数据结构的函数。当数据结构和内部函数变化时,这种变化被限制在内部的局部范围内。由于接口的相对稳定性,使得这种内部变化的影响不会涉及到其他对象,除非蛋壳破裂(接口发生变化)。因而面向对象模式开发的程序是易于维护和扩展的。

    在面向对象的编程模式中,程序的功能是通过与对象的通信获得的。对象是被定义为一个封装了状态(数据)和行为(操作)的实体。

    状态实际上包含了执行行为的信息,它以数据形式存在于对象之中。消息是对象通信的方式,因而也是获得功能的方式。对象收到发个它的消息后,或者执行一个内部操作(有时成为方法或过程),或者再去调用其他对象的操作。

    面向过程:

    现实世界-->面向过程建模(流程图、变量、函数)-->面向过程语言-->执行求解

    面向对象:

    现实世界-->面向对象建模(类图、对象、方法)-->面向对象语言-->执行求解

     对象它们有以下几个共同特点:

    1.某类对象是对现实世界具有共同特性的某类事物的抽象。

    2.对象蕴含着许多信息,可以用一组属性来表征。

    3.对象内部含有数据对数据的操作。

    4.对象之间是相互关联相互作用的。

    面向对象的特点主要概括为抽象性、继承性、封装性和多态性。

    “封装”的对象具有自己的函数,这种函数被称为“方法”,而对象的变量则被称为属性。当对象内部定义了属性的时候,它们通常不能扩展到实例以外。

    在特定的场合下,有些函数确实会影响类而不是由类所创建的对象。类属性指的是专门设计来保留对象之间所用的值。类方法则用来定义和跟踪类属性。

    “继承”继承类的属性。

    “多态性”

    1.2面向对象的基本概念

    OOP就是使用对象进行编程的过程,所谓对象就是协调数据存储以及作用于数据之上的操作的独立实体。对象把数据保存在属性(变量、域、数据成员)中。对象中也包括作用于属性之上的操作,称之为方法(函数、过程、子程)。

    用户可以通过定义一个对象集合以及它们之间的相互作用来创建一个面向对象程序。许多对象协同工作定义一个完成用户需要的程序。

    1.2.1类和对象

    可以通过类声明来定义类,然后使用类来创建用户需要的对象。类声明是用来创建对象的模板的抽象规格说明。

    当程序运行时,已声明的类用来创建新对象。由类创建对象的过程称为实例化(instantiation)。每个对象是类的一个新实例。

    1.属性

    类定义中的属性指定了一个对象区别于其他对象的值。

    2.方法

    对象的操作是由方法来指定。要使一个对象做某件事情,就要调用它的相应方法。在用户程序中,这由一行给出了方法名及参数列表的代码来完成。

    mycar.setColor(yellow);

    这行代码包括了对象名mycar;方法名serColor;参数yellow(包含于括号中)。一个方法的参数是传送给方法的数值。这些

  • 相关阅读:
    2017级算法第二次上机-B.第k顺序统计量
    2017级算法第二次上机-B.女娲加农炮
    2017级算法第二次上机-A.ModricWang's Real QuickSort Query
    2017级算法第三次上机-G.ModricWang的导弹拦截系统
    2017级算法第三次上机-F. SkyLee炒股票
    2017级算法第三次上机-C.SkyLee组装电脑
    Objective-c快速入门
    [翻译] Android是怎样绘制视图的
    AnimationsDemo中的ZoomActivity代码分析
    getGlobalVisibleRect和getLocalVisibleRect
  • 原文地址:https://www.cnblogs.com/ximi07/p/11972908.html
Copyright © 2011-2022 走看看