zoukankan      html  css  js  c++  java
  • Object的起源

    Objective-C与C++、Java等面向对象语言类似,不过很多方面有所差别。若是用过另一种面向对象语言,那么就能理解Objective-C所用的许多范式与模版了。然而语法上也许会显得陌生,因为该语言使用“消息结构”(messaging structure)而非“函数调用”(function calling)。Objective-C语言由Smalltalk演化而来,后者是消息型语言的鼻祖。消息与函数调用之间的区别看上去就像这样。

     //Messaging (Objective-C)

      Object *obj = [Object new];

      [obj performWith:parameter1 and:parameter2];

      //Function calling (C++)

      Object *obj = new Object;

      obj->perfrom(parameter1, parameter2);

    关键区别在于:使用消息结构的语言,其运行时所应执行的代码由运行环境来决定;而使用函数调用的语言,则由编译器决定。如果范例代码中调用的函数是多态的,那么在运行时就要按照“虚方法表”(virtual table)(PS:virtual method table是编程语言为实现“动态派发”(dynamic dispatch)或“运行时方法绑定(runtime method binding)而采用的一种机制”) 来查出到底应该执行哪个函数实现。而采用消息结构的语言,不论是否多态,总是在运行时才会去查找所要执行的方法。实际上,编译器甚至不关心接收消息的对象是何种类型。

    原文地址:https://www.cnblogs.com/yitaqiotouto/p/9932755.html

     
  • 相关阅读:
    Cookies和Session的定义与区别
    selenium元素定位篇
    http协议基础教程
    selenium自动化基础知识
    数组基础练习
    软件生命周期及其相关文档
    作业1
    作业2
    第四次个人作业关于微软必应词典客户端 的案例分析
    自我期许
  • 原文地址:https://www.cnblogs.com/JinQyuh/p/10006421.html
Copyright © 2011-2022 走看看