什么是对象?
如同在“面向对象”这个名称中所隐含的,对象是理解面向对 象技术的关键。你现在可以看看周围的世界,这里有很多现实 世界中对象的例子:你的狗、你的书桌、电视机和自行车。
这些现实世界中的对象有两个相同的特征:它们都有状态和 行为。例如,狗有状态(名字、颜色、种类)和行为(叫、吃
东西)。自行车也有状态(当前档、两个轮子、档的个数)和 行为(刹车、加速、减慢、换档)。
软件对象以现实世界中的对象为模型,它们也有状态和行为。 软件对象在变量中包含它的状态、用方法实现它的行为。
可以用软件对象表示现实世界中的对象,也可以用它表示抽象 概念。例如,GUI窗口系统中的对象中的事件可以表示用户按鼠
标或按键的行为。
在很多语言中,包括Java,一个对象可以选择把它的变量暴露给 其它对象,允许其它对象查看甚至改变变量。同时,对象也可
以把方法隐藏起来,防止其它对象的调用。一个对象对其它对 象能否访问它的变量和方法有绝对的权限。
封装的好处
把相关变量和方法封装在一个软件包中为软件开发者提供了两 个好处:
模块化 - 一个对象的源代码可以独立的编写和维护。 同时,对象也可以容易地在系统中传送。
信息隐藏 - 一个对象有一个公共界面,其它对象可以与 之通讯。但是对象也可以维护私有信息和方法,而不影响 依赖于它的其它对象。