美文网首页
21.为什么说Objective-C是一门动态的语言?

21.为什么说Objective-C是一门动态的语言?

作者: 小笨憨 | 来源:发表于2017-07-11 16:35 被阅读0次

objective-c语言是C语言的一个子类,所以Objective-C是一个静态语言,但是Objective-C的三大特性之一的多态性让其拥有了动态性。
oc的动态性让程序可以在运行时判断其该有的行为,而不是像c等静态语言一样在编译构建时就确定下来。它的动态性主要体现在一下三个方面:

  1. 动态类型。 如id类型。实际上静态类型因为其固定性和可预知性而使用得更加广泛。静态类型是强类型,而动态类型属于弱类型。运行时决定接收者。
    这里补充讲一下强、弱类型:语言有无类型、强类型和弱类型三种。无类型的不做任何检查,甚至不区分指令和数据;弱类型的检查很弱,仅能区分指令和数据;强类型的严格在编译期进行检查。强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作

  2. 动态绑定。让代码在运行时判断需要调用什么方法,而不是在编译时。与其他面向对象语言一样,方法调用和代码并没有在编译时连接在一起,而是在消息发送时才进行连接。运行时决定调用哪个方法。

  3. 动态载入。让程序在运行时添加代码模块以及其他资源。用户可以根据需要加载一些可执行代码和资源,而不是在启动时就加载所有组件。可执行代码中可以含有和程序运行时整合的新类。
    对象是运行时类的一个实例。在类里声明了的实例变量和方法,它的每个实例都在内存中拥有同样的实例变量,以及指向那些方法的指针。在oc中对象永远是通过指针来引用的。

相关文章

  • 2019 iOS 面试 - 基础题部分

    答案参考 1. 为什么说Objective-C是一门动态的语言? ①. 解释动态语言、静态语言 动态类型语言:动态...

  • 基础问题篇-1. 为什么说Objective-C是一门动态的语言

    1. 为什么说Objective-C是一门动态的语言? 什么是动态语言?那相对的静态语言呢?动态语言(Dynami...

  • iOS——总结

    1、为什么说Objective-C是一门动态的语言?答:什么叫动态静态->静态、动态是相对的,这里动态语言指的是不...

  • Day6

    1:为什么说Objective-C 是一门动态的语言?Objective-C 可以通过Runtime 这个运行时机...

  • IOS 一些知识点的整理(持续更新)

    1、为什么说Objective-C是一门动态的语言? 静态、动态是相对的,这里动态语言指的是不需要在编译时确定所有...

  • iOS 面试题 -- 2017基础篇

    基础 1、为什么说Objective-C是一门动态的语言? 静态、动态是相对的,这里动态语言指的是不需要在编译时确...

  • iOS面试总结

    2017年iOS面试总结 1、为什么说Objective-C是一门动态语言? 答:Objective-C类的类型和...

  • Objective-C中的runtime理解

    Objective-C是一门动态语言,为什么是动态语言,是因为Objective-C除了有自己的编译器外,他还有一...

  • iOS知识

    技术 基础 1、为什么说Objective-C是一门动态的语言? Objective-C,类别与消息的关系比较松散...

  • iOS面试题总结

    1、为什么说Objective-C是一门动态的语言? 2、Objective-C的类可以多重继承么?可以实现多个接...

网友评论

      本文标题:21.为什么说Objective-C是一门动态的语言?

      本文链接:https://www.haomeiwen.com/subject/rxemhxtx.html