美文网首页
Objective-C是一门动态的语言?

Objective-C是一门动态的语言?

作者: toro宇 | 来源:发表于2018-12-13 11:12 被阅读3次
1. 什么是动态语言? (Dynamic Programming Language-动态语言或动态编程语言)

动态语言, 是指程序在运行时可以改变其结构: 新的函数可以被引进,已有的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如Ruby,Python等就是动态语言,而C、C++等语言不属于动态语言。

Dynamically Typed Language (动态类型语言)
所谓的动态类型语言,意思就是类型的检查是在运行时做的。

2. 静态类型 (Statically Typed Language-静态类型语言)

而静态类型语言的类型判断是在运行前判断(如编译阶段), 比如C# 、Java就是静态类型语言,静态类型语言为了达到多态会采用一些类型鉴别手段,如继承,接口,而动态类型语言却不需要,所以一般动态语言会采用动态类型(Dynamically Typed), 常用于脚本语言中。

动态类型语言与这门语言是不是类型安全的完全不相干,不要将它们联系在一起。。。

静态类型语言的优缺点:

优点: 其结构非常规范,便于调试,方便类型安全;
缺点:需要写更多的类型相关代码,导致不便于阅读、不清晰明了。

动态类型语言的优缺点:

优点:方便阅读,不需要写非常多的类型相关的代码;
缺点:不方便调试,命名不规范时会造成读不懂,不利于理解等。

3、Objective-C的动态运行性

Objective-C语言是C语言的一个子类,所以Objective-C是一个静态语言,但是Objective-C的三大特性()之一的多态性让其拥有了动态性。
三大特性:封装(成员变量)、继承和多态

Objective-C 的动态性让程序可以在运行时判断其该有的行为,而不是像C等静态语言一样在编译构建时就确定下来。它的动态性主要体现在以下三个方面

  1. 动态类型

    如id类型。实际上静态类型因为其固定性和可预知性而使用的更加广泛。静态类型是强类型,而动态类型属于弱类型。运行时决定接受者。

  2. 动态绑定

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

  3. 动态载入

    让程序在运行时添加代码模块以及其他资源。用户可以根据需要加载一些可执行代码和资源,而不是在启动时就加载所有组件。可执行代码中可以含有 和程序运行时整合的新类。

对象是运行时类的一个实例。在类里声明了的实例变量和方法,它的每个实例都在内存中拥有同样的实例变量,以及指向那些方法的指针。在Objective-C中对象永远是通过指针来引用的。

相关文章

  • 2019 iOS 面试 - 基础题部分

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

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

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

  • RunTime总结

    Objective-C是一门动态性比较强的编程语言,跟C、C++等语言有着很大的不同 Objective-C的动态...

  • 底层-Runtime

    Objective-C是一门动态性比较强的编程语言,跟C、C++等语言有着很大的不同 Objective-C的动态...

  • Objective-C中的runtime理解

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

  • Runtime底层原理

    Objective-C是一门动态性比较强的编程语言,跟C、C++等语言有着很大的不同Objective-C的动态性...

  • 底层原理(五)------Class详解

    Objective-C是一门动态性比较强的编程语言,跟C、C++等语言有着很大的不同Objective-C的动态性...

  • 第十四条:理解"类对象"的用意

    Objective-C实际上是一门极其动态的语言。

  • Objective-C Runtime:类与对象

    学习笔记整理 Objective-C Objective-C是一门动态语言。其实Objecitve-C扩展了C语言...

  • iOS——总结

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

网友评论

      本文标题:Objective-C是一门动态的语言?

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