对象object是经常用于模仿现实世界中我们身边的一些对象。
基本介绍
- 中文名:object
- 相关领域:计算机,对象,编程,HTML标籤,变数
- 释义:相关的变数和方法的软体集
- 操作:电脑,计算机
软体对象
软体对象实际上是现实世界对象的造型,因为它同样有状态和行为。一个软体对象利用一个或者多个变数来维持它的状态。变数是由用户标识符来命名的数据项。软体对象用它的方法来执行它的行为。方法是跟对象有关联的函式(子程式)。
对象是理解面向对象技术的关键。用户在学习之前可以看看现实生活中的对象,比如狗、桌子、电视、脚踏车等等。用户可以发现现实世界中的对象有两个共同特徵:它们都有状态和行为。比如狗有自己的状态(比如名字、颜色、生育以及饥饿等等)和行为(比如摇尾巴等等)。同样脚踏车也有自己的状态(比如当前档位、两个轮子等等)和行为(比如剎车、加速、减速以及改变档位等等)。
套用
你可以利用软体对象来代表现实世界中的对象。你可能想用一个动画程式来代表现实世界中的狗,或者用可以控制电子脚踏车的程式来代表现实世界的脚踏车。同样你可以使用软体对象来造型抽象的概念,比如,事件是一个用在GUI视窗系统的公共对象,它可以代表用户按下滑鼠按钮或者键盘上的按键的反应。
如图1是一个软体对象的公共可视代表。软体对象的状态和行为都可以用在对象中的变数和方法来表达。构造现实世界的脚踏车的软体对象要有指示脚踏车的当前状态的变数:速度为20mps,它的当前档位为第三档。这些变数就是我们熟知的实例变数,因为它们包含了用于特殊脚踏车对象的状态,并且在面向对象技术中,特殊的对象称为实例。如图2所示,是作为软体对象的脚踏车造型。除了变数,软体脚踏车同样有用于剎车、改变踏板步调以及改变档位的方法。这些方法就是熟知的实例方法因为它们检查或者改变特殊脚踏车实例的状态。
软体对象的公共可视代表

以上的对象图显示了对象的变数组成了圆心部分。方法处在变数的四周并且在程式中从其它对象隐藏了对象的核心。用保护方法的方法来包装对象的变数称为封装。这个对象图就是对象理想的表示法,也是面向对象系统设计者努力的最后目标。然而这并不是全部的内容。通常,出于某种现实的理由,对象可能暴露它的一些变数或者隐藏一些方法。在JAVA程式语言中,一个对象可以为变数和方法指定四种访问等级中的一种。这个访问等级决定哪个对象和类可以访问变数或者方法。
软体集
总述
在JAVA中访问变数和方法可以转换为控制访问类的成员函式。封装相关的变数和方法到一个简洁的软体集是一个简单而且强有力的方法。
模组性
对象的原始码可以独立于其它的对象原始码来进行编写和维护。同样,对象可以很容易地在系统中传递。你可以将你的脚踏车对象给其它的对象,它仍然可以正常工作。
信息隐藏
一个对象如果有一个公共的界面,那幺其它的对象就可以与之进行通讯。这个对象可以维护私人的信息和方法,它可以在任何时候被改变而不影响依赖于它的其它对象。所以你不必理解脚踏车中齿轮的机理就可以使用它。
创建原因
自定义对象本身不会自动地在代码中加入新功能。通常情况下,为达到相同的效果,可以使用另一种不涉及创建对象的方法。这些对象所能做的就是使複杂的操作看起来更简单,使複杂的应用程式更加具有自我说明性和可维护性,使需要几小时才能编完代码的程式对您自己和其他程式设计师而言可重複利用性更强。实际上,创建自定义对象是一种将代码包装起来供其他 Microsoft® Visual Basic® for Applications (VBA)程式设计师使用的方法,因为与其指出如何调用您的代码,不如使他们能象使用任何内置对象一样使用您的自定义对象。 您可以创建完整的自定义对象模型,这些模型在后台有複杂的代码,但显示给程式设计师的应只是相对简单和直观的对象语法。事实上,这就是所有 Microsoft® Office 和 VBA 对象模型为您所做的一切,它们把複杂的操作包装在易于使用的对象、方法、属性和事件中。例如,当您将 Microsoft® Excel 对象的 Visible 属性设为 False 时,不必担心 VBA、Excel 和 Windows 如何协作以隐藏该对象。您可以把精力集中在创建应用程式这一更高目标上
简单性和可重複利用性自然要有代价。创建自定义对象和对象模型需要一种思考方法,这种方法比起您在 VBA 中已经习惯的那种编程思考方法是不同的,甚至可能是革命性的不同。掌握它会花一些时间。但从长远来看,用对象编代码可以提高效率,磨练设计技巧,更容易重複利用代码,从而能使您成为更好的程式设计师。
定义用法
定义一个嵌入的对象。请使用此元素向您的 XHTML 页面添加多媒体。此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和运算元据的代码。
<object> 标籤用于包含对象,比如图像、音频、视频、Java applets、ActiveX、PDF 以及 Flash。
object 的初衷是取代 img 和 applet 元素。不过由于漏洞以及缺乏浏览器支持,这一点并未实现。
浏览器的对象支持有赖于对象类型。不幸的是,主流浏览器都使用不同的代码来载入相同的对象类型。
而幸运的是,object 对象提供了解决方案。如果未显示 object 元素,就会执行位于 <object> 和 </object> 之间的代码。通过这种方式,我们能够嵌套多个 object 元素(每个对应一个浏览器)。
实例
向 HTML 代码添加一个对象:
<object classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628" id="Slider1" width="100" height="50">
<param name="BorderStyle" value="1" />
<param name="MousePointer" value="0" />
<param name="Enabled" value="1" />
<param name="Min" value="0" />
<param name="Max" value="10" /></object>
浏览器支持
几乎所有主流浏览器都拥有部分对 <object> 标籤的支持。
提示
注释:<param> 标籤定义用于对象的 run-time 设定。
注释:不要对图像使用 <object> 标籤,请使用 <img> 标籤代替。
属性
可选的属性
属性 | 值 | 描述 | DTD |
---|---|---|---|
align | leftrighttopbottom | 定义围绕该对象的文本对齐方式。 | TF |
archive | URL | 由空格分隔的指向档案档案的 URL 列表。 | STF |
border | pixels | 定义对象周围的框线。 | TF |
classid | class ID | 定义嵌入 Windows Registry 中或某个 URL 中的类的 ID 值, | STF |
codebase | URL | 定义在何处可找到对象所需的代码,提供一个基準 URL。 | STF |
codetype | MIME type | 通过 classid 属性所引用的代码的 MIME 类型。 | STF |
data | URL | 定义引用对象数据的 URL。 | STF |
declare | declare | 定义此对象仅可被声明 | STF |
height | pixels | 定义对象的高度。 | STF |
hspace | pixels | 定义对象周围水平方向的空白。 | TF |
name | unique_name | 为对象定义特定的名称(以便在脚本中使用)。 | STF |
standby | text | 定义当对象正在载入时所显示的文本。 | STF |
type | MIME_type | 定义被规定在 data 属性中指定的档案中出现的数据的 MIME 类型。 | STF |
usemap | URL | 规定与对象一同使用的客户端图像映射的 URL。 | STF |
vspace | pixels | 定义对象的垂直方向的空白。 | TF |
width | pixels | 定义对象的宽度。 | STF |
标準属性
id, class, title, style, dir, lang, xml:lang,ref,contenteditable,irrelevant,draggable,tabindex
事件属性
accesskey, tabindex, onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup。