新闻内容


06, 12, 22 04:08 存在: 3 yrs

什么是对象?

分类: 教程

作者: momoewang

从最简单的层次上来说,对象不过是一片内存区域,它包含着描述对象状态的数据字节。例如,代表文本字符串“ hello ”的对象,包括下述字节:

104 101 108 108 111

当然,这里的每个字节代表字符串里的每个字符。然而,每个对象都包含额外的信息,让它知道自己是什么类型的对象。这里不讨论这些信息是如何编码成为 对象的一部分的,但它非常重要,对象要借助它才知道自己具有什么样的行为。例如,我们有两代表数字的对象,则我们就能够从一个对象减去另一个对象;然而对 于两个代表字符串的对象来说,就没法进行简单的减法操作。正因为数字对象知道自己是个数字,所以它才知道减法是其相关操作,并知道如何处理这个操作。

Smalltalk 里,

  • 一切都是对象;
  • 对象知道自己是什么类型的对象,或者隶属于什么类( class )。

在 Smalltalk 的语法里,类( class )是一个非常重要的概念。对象所隶属的类让它知道自己的行为方式。

提示:“在 Smalltalk 里一切都是对象”的意义是非常深刻的。它使得 Smalltalk 成为一个纯的面向对象的编程语言,比其他诸如 C++, Java 等编程语言要纯粹的多。这种纯粹让系统具有一致性,使得这种语言简单易学、功能强大。

Smalltalk 编程,有些对象可以直接表达自己,这叫做文字对象 (literals) 。下面是一些文字对象的例子:

‘Hello world’ -是一个文本字符串对象;
$H -字符 H ;
517 -一个整数;
789.45 -一个浮点数字;
#(1 2 3) -包括三个整数的一个数字;
#show -一个特殊对象,称为记号。








赞助商列表