#听音乐学Java#1【有关对象的思考:对象技术及统一建模语言】

 

       我们可能习惯于将物体划分为两大类:即活动的对象和静止的对象,在某种意义上,活动的对象是“活的”;它们四处运动,并做一些事情。另一方面,静止的对象似乎什么事情也不做。它们无法自己移动。然而,所有对象都有一些共性。它们都有一些属性,诸如大小、形状、颜色和重量,而且都展示出一些 行为(例如,一个球会滚动、弹起、鼓起和收缩;婴儿会哭、睡、爬、走和眨眼睛;一辆车会加速、刹车和转弯;而一块毛巾会吸水)。

       人类通过研究对象属性和观察对象行为,从而了解对象。不同的对象可能有相似的属性,并可表现出形似的行为。例如,比较一下婴儿和承认,人和黑猩猩。轿车、卡车、红色小手推车和旱冰鞋也有许多共同之处。

       面向对象一局人们描述现实世界的相似对象来设计模型软件。它利用了类关系;在这种关系中,特定类(诸如一个车辆类)的对象具有相同的特征。它利用了继承关系,深知是多重继承关系(尽管Java与C++不同,不直接支持多重继承,但通过支持各个类的多重“接口”,使这项技术更有助于使用);在这种关系中,新的对象类是通过包容现有类的特征而建立起来的,同时可以添加自己的一些独特特征。“敞篷车”类的一个对象肯定具有更普通“汽车”类的特征,同时敞篷车还有车篷可展开和折叠的特征。

       面向对象设计(object-oriented design, OOD)提供了一种更自然和只管的方式来看待设计工程,即建立软件组件模型,正如我们通过属性和行为描述现实世界的对象。OOD还模拟了对象之间的通信。这类似于人们 相互传递消息(例如,军官命令士兵立正),对象之间也通过消息进行通信。

      OOD将属性和操作(行为)封装到对象中;对象的属性和操作紧密地结合在一起。对象具有信息隐藏这一属性。也就是说,尽管对象可能知道如何通过良好定义的接口 相互通信,但对象通常无法获知其他对象内部是如何实现的,即实现的细节隐藏在对象中。毫无疑问,我们完全可以方便地驾驭一辆汽车,而不必知道引擎、传动设备和排气系统的内部工作原理。稍后,我们将看到信息隐藏对软件工程的重要性。

       类似Java的编程语言是面向对象的;采用这种语言进行编程称为面向对象编程(Objict-Oriented Programming,OOP),它允许设计者将面向对象设计实现为一个可运行的系统。另一方面,类似C的语言是面向过程的,因而编程基本上是面向行为的。C语言的编程单位是函数;Java的编程单位是类,对象最后要通过类进行实例化(即“创建”)。Java类包含方法(实现类的操作)和字段(实现类的徐行)。

      C程序员注重函数的编写。执行某些通用任务的行动序列可以组成函数,经过分组的函数可以组成程序。数据在C语言中相当重要,但数据的主要用途就是支持函数执行的行动。

      Java程序员注重于长剑程序定义的,称为类和接口的类型。每个类都包含了字段以及一系列方法,方法用于对字段进行操作,并为客户提供服务。程序员采用预定义的类型作为构造新类的“构建块”。Java的核心在于类(我们利用它创建对象),而不是函数。

      类之于对象,如同蓝图之于房屋。正如我们可以根据一份蓝图建造许多房屋,也可以很据一个类实例化(创建)许多对象。类和其他类之间同样具有关系。例如,在一家银行的面向对象设计方案中,“出纳员”类需要和“客户”类联系。这些关系称为关联。

     如果软件已经打包成类,这些类便可在未来的软件系统中重用。一组相关的类通常打包成可重用的组件。正如房地产经纪人会高速他们的客户,影响房地产价格的三大因素是“地段,地段,还是地段”一样,软件界中的许多人也认为,影响软件开发未来最重要的三大因素是“重用,重用,还是重用”。构造新类和程序时重用现有的类,可以减少时间和工作量的消耗。重用也有助于程序员构建更可靠的系统,因为现有的类和组件通常都经过严格的测试和调试。事实上,利用对象技术,今后大多数软件都可通过组合类,即“可互换的部件”进行构建。我们所创建的没个新类都有可能成为有价值的软件资产,我们和其他程序员都可用它来加快未来软件开发的速度,并改进其质量。

      面向对象分析和设计(Object-Oriented Analysis and Design,OOAD)是一个通用术语,表示分析问题,再开发方法来解决问题的过程。一些小问题并不需要复杂的分析过程。对于这样的问题,通常只需先写好伪代码,然后就可开始写代码了。伪代码是一种表示程序代码的非正式方法。实际上,伪代码并不是程序设计语言,但我们可把它作为某种“提纲”使用,以便在编写代码时提供辅助。

       伪代码或许能满足小问题的需要,但随着问题以及解决这些问题的人数增加,OOAD方法会显得更有效。理想情况下,一个开发小组应遵守一个经严格定义的、用于解决问题的过程。同时还要采用某种统一的方式,对该过程的各种结果相互交流。尽管有很多不同的过程。同时还要采用某种统一方式,对该过程的各种结果相互交流。尽管有很多不同的OOAD过程,但有一种便于对任何OOAD过程的结果交流的图形化语言在广泛使用。这便是统一建模语言(Unified Modeling Language,UML)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值