发信人: biubiu()
整理人: biubiu(1999-08-14 22:25:51), 站内信件
|
面向对象的程序设计概念
你一定无数次听说过的这个东东。这些年,人们一直在谈论它。
那么,究竟什么是对象呢?
就像面向对象一词所表明的那样,对象是理解面向对象技术的关键。
看看你的周围,你可以看到许多现实生活中对象的例子:你的狗,桌子,
电视机,还有自行车。
这些现实世界中的对象都具有两个特征:它们都有各自的状态和自己的
行为。比如,狗有状态(名字、颜色、品种、饥饿等)和行为(叫、叼东西、
在你干净的新裤子上流口水)
软件中的对象以现实生活中的对象为原型,它们也有状态和行为。
软件对象用变量来维护它的状态,用方法来实现它的行为。
定义:一个对象就是一个变量及其相关方法的软件包。
你可以用软件对象来代表现实生活中的对象,你也可以用软件对象来
模拟抽象的概念。例如,事件就是图形用户接口窗口系统中的一个通用对象,
它代表着用户按了鼠标的按钮和键盘上的健的行为。
软件对象所知道的一切(状态)和所能做的一切(行为),是通过其内部的
变量和方法来表达。软件对象模拟现实对象可以用变量来表明狗的当前状态:
名字是阿黄,颜色是黄的,品种是狼狗。这些变量和方法形式上别认为是
实例变量和实例方法,以区别于对象的变量和对象的方法。
软件对象自行车具有刹车、变速和换档的方法。(自行车不会有一个直接
改变速度的方法,以为自行车的速度要受到很多因素的影响。例如,档位是
几档,齿轮的转速,刹车是否打开,山的陡峭程度等)
一切对象不知道和不能做的多被排除在对象之外。例如,你的自行车也许
没有名字,它不会跑,不能叫,也不能叼东西。因此,类的内部就没有代表
这些状态的变量和代表行为的方法。
如果把状态比作是一个球体,方法则是包围在这个球之外的一个更大的
球体。对象的状态不会自己改变,而要通过对象的方法来改变。把对象的变量
包装起来,让它处于方法的保护之中,被称为封装。一般的,封装用来将
不必要的实现细节对其他对象进行隐藏。当你想改变自行车的档位时,
你不知道换档装置的工作原理,你只要知道你想换到几档就行了。相似的,
在软件程序里,你不必知道一个类是怎样实现的,你只要知道调用那个方法
就行了。因此,实现的细节可以随时改变,而不会影响到程序的其他部分。
当然,有时出于实现或效率的原因,对象也许会直接暴露一些变量(这样,
就可以直接改变变量的值)和隐藏一些方法(使你无法调用这些方法)。
封装的好处:
封装相关的变量和方法成为一个小巧的软件包是一个简单但是十分有效的
想法,它有以下两点好处:
第一, 模块性。各个对象的源代码被分开书写和维护,同时,每个对象
可以在系统中方便的传递。
第二, 信息隐藏。对象可以具有公共的接口以使其他对象能也起交互,
也可以具有私有信息并随时通过方法进行改变,而不会影响对依赖于它的对象。
这就好像你不必知道换档的原理,但你照样可以改变档位。
-- 未经同意,请勿转载.
原文可到http://www.java.com下载.
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.163.106]
|
|