Smalltalk是第一种成功的面向对象程序设计语言,也是Java的基础语言。
(1)所有东西是对象。可以将对象想象成一种新型变量。它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。
(2)程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。为了向对象发出请求,需向那个对象“发送一条消息”。更具体地来讲,可将消息想象为一个调用请求,它调用的是从属于目标对象的一个自例程或函数。
(3)每个对象都有自己的存储空间,可容纳其他对象,或者说,通过封装现有对象,可制作出新型对象。所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂度。
(4)每个对象都有一种类型。根据语法,每个对象都是某个“类”的一个“实例”,其中。“类class”是“类型type”的同义词,一个类最重要的特征就是“能将什么消息发给它?”。
(5)同一类所有对象都能接收相同的消息,这实际是别有含义的一种说法,由于类型“圆”的一个对象也属于类型为“形状”的一个对象,所以一个圆完全能接收形状消息,这意味着可让程序代码统一指挥“形状”,令其自动控制所有符合“形状”描述的对象,其中自然包括“圆”,这一特性为对象的“可替换性”,是OOP的重要概念之一。