作为一个ObjecTIve-C的coder,我总能听到一部分人在这门语言上抱怨有很多问题。他们总在想快速学习这门语言来写一个App出来,但他们也总是联想到ObjecTIve-C看上去实在太难了或者在想这些语法符号都是神马玩意?不错,他们问得非常好,所以本人也解释一下为什么很多程序员相比较学习Ruby或者Java很容易,但在决定开发iOS或者OS X应用时会那么犹豫。

什么是oc语言

语法:

首先我们谈谈神马叫做编程语言,编程语言是一种让人们能读懂并且能够展现程序的执行行为的语言,包括语法(正确的表达式以及状态机的使用规则)以及语义(如何去组织这些表达式以及状态机以一种有意义的方式去完成我们的目标)

大部分编程语言都是基于C语法风格的,也就是我们常说的点语法,依靠小数点符号来调用方法或者获取类的成员(当然了,在C语言中类被替代为结构体)。它们通常都是自己实现类的定义(注意在这里Java与C#和C++有稍微一点不一样),但无论如何这些语言的具体细节都是一样的。当我们接触一个新的编程语言时,我们当然很乐意看到新语言的语法是我们似曾相识的。毕竟大部分程序员都了解C语言的语法。

然而ObjecTIve-C压根就不是C语法风格的编程语言。它与我们熟悉的语言语法区别太大以至于大部分程序员根本看不懂这些ObjecTIve-C代码是神马东西。

甚至其他一些像Python或者Ruby这样的“奇怪”的语言都能让人看个大概出来,毕竟Python与Ruby至少还是点语法风格的,使用点语法来调用方法以及获取类的成员。相反它们缺乏分支结构并不会长时间影响程序员的理解,毕竟这两种语言也有自己的方式来完成同样的目标。

oc语言是c语言吗?

C语言是基础语言,可以用于写底层代码,要想学好需要长时间的累计经验;OC简单来说就是C语言的封装版,比C用起来更方便,而且更规范。OC是专门开发苹果IOS程序的,但是在实际开发中会用到C语言的变成。现在IOS开发的程序员好多都在学习Swift,类似于js变成,效率比oc高。

C语言是面向过程的编程语言,而OC则是面向对象的编程语言。面向对象:打个比方,就是你做一次菜,让老婆做个菜,吃饭,这就是面向对象,效率高面向过程,就是每一个细节:比如你要先把或开到合适的位置。然后还要洗菜 ,等油热了,才能开始炒菜,然后调料,。。。,起锅,到碗里,吃饭。。。。 面向对象编程的代码更容易维护。它把具体的操作细节封装在类里,用的时候创建个对象,一顿调用方法,搞定!(当然类的实现方法还是需要自己写,面向对象只是一种编程思想。)OC继承、或者说是拓展于C语言,OC里可以直接写C语言的代码,这是OC的向下兼容。

OC于C语言的头文件引入方式的不同:OC #import,C语言 #include在Xcode老版本创建OC项目时候选择的是 “Foundation” 项目新版本之后创建OC项目时候选择的是 “Objective-C” OC项目的头文件: #importFoundation里面包含了很多OC的库文件引用为什么要使用improt?include和import都是引入头文件import引入头文件可以防止重复include他是用预处理指令防止重复包含,如果没有写预处理指令,则无法防止重复包含问题。OC的源文件扩展名是:.mC语言的源文件扩展名是:.c头文件都是.h文件OC的数据类型:

C语言与OC关键字对比:OC的关键字很多都带着“@”符号!

OC比C语言拓展了一个for循环用法:OC中没有新增加流程控制,OC提供一种增强型for循环:

什么是编程语言C语言,什么是oc语言,oc语言是c语言吗?相关推荐

  1. 初探swift语言的学习笔记九(OC与Swift混编)

    作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/34440159 转载请注明出处 如果觉得文章对你有所帮助,请通过留言 ...

  2. 编程语言的发展趋势及未来方向(4):动态语言

    我下面继续要讲的是动态语言,这也是我之前提到的三种趋势之一. 我还是尝试着去找到动态语言的定义,但是你也知道--一般地说,动态语言是一些不对编译时和运行时进行严格区分的语言.这不像一些静态编程语言,比 ...

  3. 题外话:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗...

    以下文章虽然是编程,但是对于IT行业都通用 文章背景,回答提问:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗? 我的建议是这样: 1. 不要辞职. 首先说,你对整个开 ...

  4. 2022年度编程语言排行榜来啦,它凭什么能超过C语言,排名第一?

    IEEE Spectrum 发布了 2022 年度编程语言排行榜,其中 Python 在总榜单以及其他几个分榜单中依然牢牢占据第一名的位置.另外值得关注的是微软 C# 语言,它的排行从 2020 年的 ...

  5. Swift和OC,是编译型语言、解释性语言、运行时语言?

    首先需要明确的一点是,什么是编译型语言和解释性语言 编译型语言,就是在其执行过程中需要先将其经过编译成机器码来给计算机识别的,其执行效率就会比较高这个是显而易见的,常见比如:C.C++ 而解释型语言, ...

  6. c语言中平均值用什么表示_学C语言有什么用?

    这个也是我刚学C语言的疑问,当时总是写一些比较大小,排序之类的函数,很是枯燥,也学的不怎么样.学东西是要有用它的地方才有动力继续学习, C语言的应用很广的,比如 我以前学习的单片机,现在学习的嵌入式, ...

  7. 如何用c语言读取硬盘串号_如何用C语言实现OOP

    我们知道面向对象的三大特性分别是:封装.继承.多态.很多语言例如:C++和Java等都是面向对象的编程语言,而我们通常说C是面向过程的语言,那么是否可以用C实现简单的面向对象呢?答案是肯定的!C有一种 ...

  8. python语言程序设计2019版第二章课后答案-python语言程序设计基础(嵩天)第二章课后习题...

    **第二学期第一周学习总结 一. 本周学习内容总结 一维数组,了解了一维数组的定义(定义一个数组,需要明确数组变量名,数组元素的类型和数组大小,即数组中元素的数量) 一维数组定义的一般形式为:类型名, ...

  9. python是一种语言还是一个软件-自动化专业想学一门语言 是学Python 还是Java ?...

    1.java语言排行榜 TIOBE发布了2019年5月份编程语言排行榜,以下是网站译文,(翻译的可能有点鬼畜,凑活看吧)5月标题:统计语言R不属于TIOBE指数前20名 在进入前20名大约3年后,统计 ...

  10. python与c语言在语法上的区别-python和c语言的区别是什么

    Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言.本萌新也刚开 ...

最新文章

  1. javascript 判断 前端 是 pc端 还是 移动端
  2. ML之xgboost:利用xgboost算法(sklearn+3Split)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测)
  3. 趣链 BitXHub跨链平台 (10)跨链自治
  4. Qtum量子链受邀出席日本早稻田研究所区块链教育讲座
  5. mysql timestamp utc_MySQL 5.7 时间显示修改(log_timestamps UTC)
  6. python-数字数据类型-整数类型-浮点数类型-数据类型间的转换
  7. 计算机显示休眠状态进不去,解决方法:关闭计算机,或使其进入睡眠或休眠状态...
  8. endp 汇编start_常见汇编代码
  9. 搭建 Kafka 集群 (v2.12-2.3.0)
  10. 拓端tecdat|Tableau 数据可视化:探索性图形分析新生儿死亡率数据
  11. 三菱FX3U——SFC单流程的使用
  12. 浅谈留存率到底有多少种统计方式(口径问题)
  13. 下载神器aria2和他的客户端Persepolis
  14. 天翼云监控客户pc端及手机端下载安装教程
  15. arm裸机程序启动流程
  16. uniapp Modal自定义弹窗
  17. 将字符串“name=zhangsan age=18 classNo=201062001”拆分为“zhangsan 18 20162001 ”
  18. Gazebo機器人仿真學習探索筆記(五)環境模型
  19. vue实现数据无缝循环滚动
  20. 磊科(NetCore) nw330 usb无线网卡 win7 x86 驱动程序 (for windows7 32位)

热门文章

  1. MFC界面设计----改变界面大小使其中控件随其界面大小变化的方法
  2. 根据银行卡号查询该银行卡的签发银行
  3. xxl-job任务调度中心详细介绍和使用
  4. 2021年五一建模B赛题+思路
  5. osgEarth配置地图资源
  6. 读取excel文件后计算指定行列笛卡儿积并写出
  7. 当心理学遇上设计:格式塔原理是如何服务于设计的?
  8. python图像文件处理——图像画框、剪切图像、json文件转txt
  9. 查看SCI期刊引用格式步骤记录
  10. matlab显示一幅图像