1、万物皆对象。 将对象想成一种特殊的变量;它存储数据,而且还可以让你“提要求”,命令它进行某些操作。从理论上讲,你可以把所有待解决的问题中的概念性组件(狗、建筑、服务等)都表示成程序里的对象。
2、程序就是一组相互之间传递消息,告诉对方该干些什么的对象。   你只要向那个对象“发一个消息”,就能想它提出要求。更确切的说,你可以这样认为,消息是调用专属某个对象的方法的请求。
3、每个对象都是利用别的对象来组建它自己的记忆。换言之,你通过将已有的对象打成一个包,来创建新的对象。由此,你可以将程序的复杂性,隐藏在对象的简单性之下。
4、对象都有类型。 说这句话的意思是,任何对象都是某个类的实例(instance of a class),而这里的“类(class)”就是“类型(type)”的意思。用以区分类的最突出的特点就是“你你呢个传给它什么消息”?
5、所有属于同一类型的对象能接受相同的消息。以后你就会知道,实际上这是定义,而不是特点。一个“circle”型的对象也是一个“shape”的对象,所以可以保证circle能接受shape的消息。也就是说,你写给shape的代码能自动交由任何符合shape描述的东西处理。这种交互性(substitutability)是OOP最强大的功能之一。