我刚学dehphi,到底什么是面向对象?有什么特点???

解决方案 »

  1.   

    呵呵,这可一下子讲不清楚,建议买本书来看。
    C++的讲这方面的比较多,也比较详细,Delphi的书一般讲面向对象方向的知识都不多。
      

  2.   

    对象是建立面向对象程序所依赖的基本单元。用更专业的话来说,所谓对象就是一种代码的实例,这种代码执行特定的功能,具有自包含或者封装的性质。这种封装代码通常叫做类、对象类或者模块或者在不同编程语言中所应用的其他名称。以上这些术语在含义上稍微有些不同,但它们都是代码的集合。
      正如我上面提到的那样,对象本身是类或者其他数据结构的实例。这就是说,现有的物理代码起到了创建对象的模版作用。执行特定功能的代码只需要编写一次却被引用多次。每一种对象具有自己的标识,也就是令对象相互区别的对象名称。
      对象并不是类的实际拷贝。每一对象都有自己的名称空间,在这种名称空间中保存自己的标识符和变量,但是对象要引用执行函数的原有代码。 “封装”的对象具有自己的函数,这种函数被称作“方法”,而对象的变量则被称为属性。当对象内部定义了属性的时候,它们通常不能扩展到实例以外。假设我现有一个类叫vegetable(蔬菜),同时又创建了两个对象实例 carrot(胡萝卜)和 celery(芹菜),那么我给carrot设置的值就不会影响到celery内部的值。vegetable自身内部的变量却永远不会得到定义,因为vegetable类只是一种模版。
      在特定的场合下,有些函数确实会影响类而不是由类所创建的对象。类属性指的是专门设计来保留对象之间所用的值。类方法则用来定义和跟踪类属性。
      某些编程语言可以让用户调用类的函数而不是创建整个实例。如果函数被分配以标识符(或者句柄),在某些情况下它们可以被视做具有自身权限的对象。不过,在大多数的情况下函数只是用来实现某种结果的方法。
      

  3.   

    一言难尽人们编写计算机程序,是要让计算机为人服务的。最早期的计算机程序,任务十分单一,一般一个程序只能完成某一项计算;而相对没一项计算,就要编写一个程序。那时的程序一旦编写完成开始运行,就不存在和人的交流了。
    ----随着计算机应用的不断发展,人们需要计算机可以“听懂人话”,和人交流,在这种要求下,交互式程序产生了。最初的交互式程序是由计算机按照步骤运行,在需要得到用户输入的时候接受用户的响应。这种程序,在开始 Turbo Pascal 的学习中我们就编写过,让计算机接受一个键盘输入,再根据用户的输入进行处理,这就是交互式程序。
    ----然而这种交互式程序目前已经不太被人们使用了,现在的交互式程序要求给用户更大的自由度,就是所谓的面向用户的程序。像我们用的 Windows 98 及在 Windows 下运行的大部分软件,都可以说是面向用户的程序。它的特点是:有良好的界面,对用户的事件可以做出响应。
    ----我们知道,用户的操作是多种多样的,要对用户的各种操作做出响应,似乎用我们的顺序程序结构就不太适合了,我们要对不同的用户操作编写相应的程序响应事件。这样,就出现了面向对象的交互式程序。
    ----现在,可视化的程序设计工具几都采用面向对象的交互式程序,Delphi 也是。所谓面向对象,我们在上一讲中已经介绍了什么是对象以及什么是面向对象的程序。下面我们来谈谈怎么把面向对象的程序与面向用户的交互式程序联系在一起。
    ----通过定义对象,我们可以把每一个可是化的组件定义为一个对象,然后编写这个对象的对各种事件的响应过程。这样,就把顺序型的程序变成了模块化的程序了。如果在可以让用户的操作直接导致各个对象的某种事件的响应,面向对象的交互式程序就实现了,当然这一步是每种可视化程序设计工具都自动完成的,无需我们费神。
    ----上面提到了可视化组件这个概念,其实这个概念大家并不陌生。随便就一个 Windows 的应用程序看:应用程序的窗体、显示文本的文本框、菜单条、滚动条……都是可视化组件。而把可视化组件定义为对象就是用对象的常量、变量、过程、函数描述这个可视组件以及完成可视化组件对用户操作的响应。以后我们把描述可视化组件的常量、变量叫做“属性”,而响应用户操作的过程叫做“事件”。
      

  4.   

    OOP使用独立对象(包含数据和代码)作为应用程序模块地范例。虽然OOP不能使得代码容易编写,但它能使代码易于维护。将数据和代码结合在一起,能使定位和修复错误地工作得到简化,并最大限度地减少了对其他对象地影响,提高了程序的性能。通常,一门面向对象地编程语言至少要实现下列三个OOP概念:
        封装,把相关地数据和代码结合在一起,并隐藏了实现细节。封装地好处是有利于程序地模块化,并把代码和其他代码分开。
        继承,是指一个新地对象能够从父对象中获取属性和方法,这种概念能用来建立树状结构的多层次对象,首先建立通用对象,然后创建这些通用对象的具有专用功能的子对象。
        多态性,从字面上说,是指多种形状。调用一个对象变量的方法(函数)时,有多种形式,实际被调用的代码与实际在变量中的对象实例有关。
      

  5.   

    面向对象技术具有以下特征:
    1.抽象(abstraction)
    包括数据抽象和过程抽象。数据抽象指把一组数据对象及其作用在对象上的操作组成一个程序实体——类,它定义了对象的属性和处理这些属性的操作;过程抽象为对象的相互作用提供了依据。
    2.封装(encapsulation)
    数据和过程的内部细节对外界隐蔽,也就是我们常说的信息隐蔽,减少了变化发生时副作用的传播;数据结构和对它们的操作被合并在单个实体内,便于构件复用;简化了被封装对象的接口,发送消息的对象不需要关心接收对象的内部数据结构,因此降低了系统耦合度。
    3.继承(inheritance)
        子类继承其超类的所有属性和操作,这样,对超类的属性和操作所做的任何修改均能立即被其子类继承,具有很强的可修改性、可维护性、可扩充性。
    4.多态性(polymorphism)
        就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”来表示。举一个简单的例子:计算机中的堆栈可以存储各种格式的数据,包括整型数,浮点数或字符,不管存储的是何种数据,堆栈的算法实现是一样的,编程人员针对不同的数据类型不必手工选择,只需使用统一的接口名,系统可以自动选择相应的操作。另外,运算符重载(operator overload)也是一种的多态机制的体现。一句话:
    面向对象=对象+类+继承+通信
      

  6.   

    ....建议搂主去google查一下~~相关的资料文章不少~~~
      

  7.   

    http://www.csdn.net/develop/Read_Article.asp?Id=18983看看这篇文章,刘艺的新书Delphi面向对象编程思想
      

  8.   

    好好看看书吧,建议看看Delphi高手突破,里面讲的不错