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

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

作者: 豆丶浆油条 | 来源:发表于2017-09-06 10:21 被阅读390次

    整个《面试题》都是对2017年6月iOS招人心得(附面试题)的整理。

    1.解释动态语言、静态语言

    动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

    静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。Objective-C虽然在写程序时声明了变量的数据类型,但是在编译期间并没有检查。因为Objective-C类和对象都是在运行时候创建的,所以编译期间没办法检查。
      总结::两者的区别在于是否在编译期间做数据类型检查。

    2.OC是动态语言的原因

    Objective-C 是C 的超集,在C 语言的基础上添加了面向对象特性,并且利用Runtime 这个运行时机制,为Objective-C 增添了动态的特性。
      
      Objective-C 可以通过Runtime 这个运行时机制,在运行时动态的添加变量、方法、类等,所以说Objective-C 是一门动态的语言。
      
      Objective-C 使用的是 “消息结构” 并非 “函数调用”:使用消息结构的的语言,其运行时所应执行的代码由运行期决定;而使用函数调用的语言,则由编译器决定。
      
      总结:OC利用Runtime可以在运行的时候创建类,修改类,修改对象调用的方法。

    相关文章

      网友评论

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

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