对象、消息传递和方法
2009-05-01 17:59
281 查看
对象是类的实例。尽管对象的表示在形式上与一般数据类型十分相似,但是它们之间存在一种本质区别:对象之间通过消息传递方式进行通信。
消息传递原是一种与通信有关的概念,OOP使得对象具有交互能力的主要模型就是消息传递模型。对象被看成用传递消息的方式互相联系的通信实体,它们既可以接收可以拒绝外界发来的消息。一般情况下,对象接收它能够识别的消息,拒绝它不能识别消息。对于一个对象而言,任何外部的代码都不能以任何不可预知或事先不允许的方式与这个对象进行交互。
发送一条消息至少应给出一个对象的名字和要发给这个对象的那条消息的名字。经常,消息的名字就是这个对象中外界可知的某个方法的名字。在消息中,经常还有一组数(也就是那个方法所要求的参数),将外界的有关信息传给这个对象。
对于一个类来说,它关于方法界面的定义规定了实例的消息传递协议,而它本身身定了消息传递的合法范围。由于类是先于对象构造而成的,所以一个类为它的实例提了可以预知的交互方式。例如,假设m1是类Manager的一个实例(或对象),当外界要求把这个对象所代表的那位经理的级别改变为2时,就应以下面的方式向这个对象发出一条消息:
ml.ChangeLevel(2);
消息传递原是一种与通信有关的概念,OOP使得对象具有交互能力的主要模型就是消息传递模型。对象被看成用传递消息的方式互相联系的通信实体,它们既可以接收可以拒绝外界发来的消息。一般情况下,对象接收它能够识别的消息,拒绝它不能识别消息。对于一个对象而言,任何外部的代码都不能以任何不可预知或事先不允许的方式与这个对象进行交互。
发送一条消息至少应给出一个对象的名字和要发给这个对象的那条消息的名字。经常,消息的名字就是这个对象中外界可知的某个方法的名字。在消息中,经常还有一组数(也就是那个方法所要求的参数),将外界的有关信息传给这个对象。
对于一个类来说,它关于方法界面的定义规定了实例的消息传递协议,而它本身身定了消息传递的合法范围。由于类是先于对象构造而成的,所以一个类为它的实例提了可以预知的交互方式。例如,假设m1是类Manager的一个实例(或对象),当外界要求把这个对象所代表的那位经理的级别改变为2时,就应以下面的方式向这个对象发出一条消息:
ml.ChangeLevel(2);
相关文章推荐
- objc_msgSend消息传递学习笔记 – 对象方法消息传递流程
- ios 中调用函数的方法是消息传递,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候
- android中intent传递list或者对象的方法
- ASP.NET页面间传递对象的另类方法
- ASP.NET MVC中,后台向前台传递多个对象(表)的方法
- c#进程之间对象传递方法
- Servlet页面间对象传递的方法
- C++中建立对象间消息连接的一种系统方法——回调函数
- WebApi 的 HttpGet 和 HttpPost 传递多个参数对象的Json和Dynamic方法
- dwr调用参数为 对象数组 的方法(js中直接传递obj数组)
- Android中Intent传递对象的两种方法(Serializable,Parcelable)
- 用Parcelable传递对象方法
- Android中Intent传递对象的两种方法(Serializable,Parcelable)!
- Object-c对象和消息传递
- java Http消息传递之POST和GET两种方法
- Servlet页面间对象传递的方法
- oc中消息传递机制-附:对performSelector方法的扩充
- ASP.NET页面间传递对象的另类方法
- 对象,类、方法和消息
- java面向对象入门之方法参数的传递