理解面向对象

为什么要学习面向对象语言?

我们知道,世界上的万事万物都可以看作是属于不同类别的个体,或称之为对象,这些对象之间彼此存在着直接或间接的关联。面向对象的设计思想恰好也是以类、类与类之间的关系作为分析问题的基础点,因此,使用面向对象的分析与设计能够很自然地表示与系统相关的各个对象并表达这些对象之间的联系。

面向对象的概念

“面向对象”是围绕现实世界中的概念来组织系统模型的一种崭新的思维方式,其基本构造是对象,这些对象把特定的数据以及与该数据相关的行为(或叫操作、方法)紧密的结合在一起组成单一实体,而“面向对象”把这些相互独立的对象有效的紧密结合在一起组织系统。

面向对象的实质(这段实质理论性非常强,很难理解,是站在一个很高的角度上跟我们讲原理)

“面向对象技术”的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能地接近人类认识世界和解决问题的方法与过程,也就是使描述问题的问题空间(也称问题域)与实现解法的解空间(也称求解域)在结构上尽可能一致。

“面向对象方法”所提供的“对象”概念,是让软件开发者自己定义或选取解空间对象,然后把软件系统作为一系列离散的解空间对象的集合。应该使这些解空间的对象与问题空间的对象尽可能的一致。这些解空间对象彼此之间通过发送消息而相互作用,从而得出问题的解。也就是说,“面向对象方法”是一种崭新的思维方法,它不是把程序看作是工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合。每个对象都是一个有生命的个体,它有自己的数据、操作、功能和目的。这样做就向着减少语义断层的方向迈出了一大步,在许多系统中解空间对象都可以直接模拟问题空间的对象,解空间与问题空间结构十分地一致,因此,这样的程序易于理解和维护。

OO方法强调从客观世界的固有事物出发来构造系统,用人类习惯的思维方法来认识世界、理解和描述客观事物,强调最终建立的软件系统能够映射问题域,对象及对象之间的关系能够如实反映问题域中的事物及其关系。

面向对象的要点

四个要点:
    1.认为现实世界是由各种对象组成,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。按此种观点,可以认为整个世界就是一个最复杂的对象。面向对象的软件系统是由对象组成,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。

    2.把所有对象都划分成各种对象类(简称为类),每个对象类定义了一组数据和一组方法。数据用于表示对象的静态属性,是对象的状态信息。每当建立这个对象类的一个新实例时,就按照类中对数据的定义,为这个新对象生成一组专用的数据,以便描述该对象独特的属性值。

    3.按照子类(也成派生类)与父类的关系,把若干个对象类组成一个层次结构的系统。在这种层次结构中,通常下层的派生类具有和上层的父类相同的特性(包括数据结构和方法),这种现象称为继承。但是如果在子类中对某些特性又做了重新描述,则在子类中的这些特性将以新的描述为准(Overloading),即地层的特性将屏蔽高层的同名特性。

    4.对象之间仅能通过传递消息相联系。对象与传统的数据有本质的区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须发出消息请求它执行他的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。即,一切局部于该对象的私有信息,都被封装在该对象类的定义中,好像装在一个不透明的“黑匣子”里一样,外界看不见,更不能直接使用,这就是“封装性”。

综上所述,面向对象可以用下列方程来表达:
Object Orient = Objects + Classes + Inheritance + Communication with message
也就是说,面向对象就是既使用对象又使用类和继承机制,而且对象之间仅能够通过传递消息实现彼此通信。

如果仅使用对象和消息,则这种方法可以称为基于对象的(Object-based)方法,而不能称为面向对象的方法;如果进一步要求把所有对象都划分为类,则这种方法可称为基于类的(Class-based)方法,但仍不是面向对象方法。只有同时使用对象、类、继承和消息的方法,才是真正的面向对象方法。

面向对象的特性

三个基本的特性:封装、继承与多态。

详细介绍我会在另外的文章中一一分析

面向对象的优点

       1.与人类习惯的思维方法一致;
       2.稳定性好;
       3.可重用性好;
       4.可维护性好

面向对象开发

面向对象开发涉及到软件生命周期的前期部分:分析、设计和实现,由此产生了面向对象领域的三大技术:面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)。

对象模型技术(OMT)是我们在进行面向对象分析与设计(OOA&D)时常用的建模方法,它涉及到对象发现、对象分析、对象设计以及对象实现。OMT用三种模型来刻画一个系统:对象模型,它描述系统中的对象和它们之间的联系;动态模型,它描述系统中对象间的相互作用;功能模型,它描述系统中数据的变化。

面向对象开发主要有以下几个步骤:(需求)分析、系统分析(设计)、对象分析(设计)、实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值