Object
Objects in programming languages often embody both attributes
and behaviors
.
Attributes在不同场合又称作
Properties
Fields
Data
Instance variables
State
Behaviors在不同场合又称作
Methods
Functions
Procedures
Operations
Actions
Member functions
了解一个东西的属性和行为,就表示对该东西有了认识和概念(Concepts
)。尽管有些东西并不存在,但只要对其有概念,就是对象,如古代神话中的龙、凤凰、月中白兔、嫦娥等都是我们熟悉的对象。但对于没有听过嫦娥奔月故事的外国人来说,嫦娥并不是对象。
在“面向对象编程”(Object-Oriented Programming,简称OOP)观念中,事件所涉及的东西是对象,对象的内部状态变化是事件。
传统上,数据与函数分而治之。“函数”代表计算机的动作,其动作的目的是“处理”数据。。数据是被动的,函数是主动的。若软件想满足人们的生活习惯,符合自然界的规则,应修正传统的观点,将数据和函数化零为整,合
为一体成为如今所说的“对象”。
In many object-oriented programming languages, each object belongs to a specific class, and each class defines a data type. So, in a sense, you could say that each object is an instance of a particular data type.
消息的作用:刺激对象,令其改变内部状态。
消息的目的:要求对象提供服务。例如,在火车站将钱币投入售票机时,对售票机个体而言,用户的投币
或按键都可以认为是消息的到来,消息会改变售票机的内部状态—金额逐渐增加。投足钱币时,售票机提供服务—送出火车票。
“事件驱动”或“消息驱动”(Message Driven)。所以在OOP 观念中,函数的任务:运行对象对消息的反应过程,即表达对象的行为。函数处于被动位置,只有收到消息,受外界刺激时,对象才会呼叫函数对消息做出反应。
目前大部分软件是事件驱动的,而写这类软件时,就需要应用OOP 的观念和方法。
铁打的营盘流水的兵