1)万物皆对象。 可以将对象认为是奇特的变量,它可以存储数据,除此之外,你还可以要求它在自身上执行操作,理论上来讲的话,你可抽取待解决的问题的任何概念化构建(狗,建筑物,服务等),将其表示为程序的对象
任何东西都是可以用对象的形式来解决问题
2)程序是对象的合集,它们通过发送消息来告知彼此所要做的。 要想请求一个对象,就必须对该对象发送一条消息,更加具体的来说,可以把消息想象为对某个特定对象的方法的调用请求
对象之间传递数据,是通过调用对象的引用来操作他的变量和方法去实现的
3)每个对象都有自己的由其他对象所构成的存储。 换句话说,可以通过创建包含现有对象的包的方式来创建新类型的对象,因此,可以在程序中构建复杂的体系,同时将其复杂性隐藏在对象的简单性背后。
4)每个对象都有用其类型。按照通用的说法,“每个对象都是某个类(class)的一个实例”,这里“类”就是类型的同义词。每个类最重要的区别于其他类的特征就是“可以发送什么样的消息给他”。
每个对象都是可以进行交互的,通过对象的方法
5)某一特定类型的所有对象都可以接收同样的消息。这是一句意味深长的表达,因为“圆形”类型的对象同时也是“几何形”类型的对象,所以一个“圆形”对象必定能够发送给“几何形“对象的消息。这意味着可以编写与“几何形”叫并自动处理所有与几何形性质相关的事物的代码。这种可替代性是oop中最强有力的概念之一。
对象的多态和继承可以解决一切事情
对象具有状态,行为和标识。这意味着每个对象都可以拥有内部数据(该对象的状态)和方法(他们的行为),并且每一个对象都可以唯一的与其他对象区分开来,具体来说,就是每一个对象在内存中都有一个唯一的地址