Objective-C编程语言概叙
来源:互联网 发布:聚宝盆软件官网 编辑:程序博客网 时间:2024/05/14 22:23
特点
Objective-C简称OC,是一种通用目的的、面向对象的编程语言,它是把Smalltalk中的消息风格加到了C编程语言。Apple公司用OC作为开发OS X和iOS操作系统,以及这些系统的应用程序接口(APIs)。OC实现程序的源代码文件通常是.m文件名扩展,而OC的头文件和C编程语言一样都是.h文件名扩展。Objective-C++的源文件是.mm文件名后缀。
历程
OC最早起源于二十世纪80年代。当时,OC是被选为主要编程语言用来开发NeXT公司的NeXTSTEP操作系统,而后NeXTSTEP操作系统衍生出了OS X以及iOS等。可移植编程语言OC不使用Cocoa或Cocoa Touch的类库,也能在支持GCC或Clang的操作系统中被编译。
体会
对编者来说,OC是最近才接触到的新东西。依靠着以前学习C编程语言和C#编程语言的基础,我渐渐熟悉着OC的语法(Syntax)和基本理论。OC作为开发OS X和iOS应用软件的最佳编程语言,它有着与主流编程语言不同的语法特征。如果学习过Java或者C++的人看到OC,他会发现学习OC的过程将是一个“痛苦”的过程。因为OC不一样,有时可以说非常不一样。这不仅仅体现在语法规范方面,也体现在它的发展历史以及多年形成的处理事情的特殊方式,它不会像你以前学过的任何一门编程语言。所以,得尽量去抛开以前编写代码的规范。
OC面向对象程序设计的模型是基于对对象的实例的消息传递。在OC中,一种不调用方法,一种发送消息。这不像在C++中使用的Simula编程语言中的编程模型。这两种观念的区别在于代码怎么被方法引用的或者消息名怎么执行的。在Simula风格的语言中,方法名大多数情况会受编译器限于一部分在目标类中的代码。在Smalltalk和OC中,一个消息的目标是在运行时(runtime)中被处理的,伴随着接收解释消息的对象本身。
比如,发送消息方法给指针指向的对象,在C++中是这样的:
obj->method(argument); //obj是指针
而在OC中是这样的:
[obj method:argument];
两种编程风格都各有好处与坏处。C++的Simula风格支持多继承,而且编译时绑定执行非常快。但是默认不支持动态绑定。OC的Smalltalk风格支持消息不实现,方法在运行时中实现。比如,一个消息能被发到对象的集,只有部分会反应,不用担心产生运行时错误。消息传递也能不要求对象在编译器中被定义。实现仍要求方法在派生对象被调用。
以上还只是举例说明了一下OC中消息的语法特点,其实OC还有很多诸如接口(interfaces and implementations)、协议(protocols)、动态类型(dynamic typing)、种类(categories)等一些有特色的语法规范和设定。
- Objective-C编程语言概叙
- Objective-C编程语言--简介
- Objective-C 编程语言(1) 简介
- Objective-C 编程语言(5)属性----概述
- Objective-C 编程语言(7)关联
- Objective-C 编程语言(8)快速枚举
- Objective-C 编程语言(12)线程
- Objective-C 编程语言(7)关联
- Objective-C 面向对象的编程语言
- Objective-C 编程语言(7)关联
- 1月编程语言排行榜:Objective-C成为年度语言
- 面向对象C语言(Objective-C)编程简介
- 面向对象C语言(Objective-C)编程(二)
- Objective-C超越C++,成为第三大受欢迎编程语言
- C编程语言概叙
- 11月编程语言排行榜:Dart能否打败Objective-C
- Objective-C 编程语言(3) 定义类--- 类的实现
- iPhone软件开发编程语言Objective C学习资料
- Android定制ListView的界面(使用继承自ArrayAdapter的自定义适配器)--《第一行代码Android》学习笔记
- 冒泡排序算法小试[笑哭]
- 修改ubuntu 的命令提示符("修改主机名和用户名")
- Java字节码指令列表
- Oracle视图、序列、索引、约束
- Objective-C编程语言概叙
- OpenGL用着色器画绿色三角形
- 用着色器画Sierpinski
- (程序员内在修炼)《熔炉》观后感:承认并且面对生活的丑陋面
- java利用正则表达式验证邮箱
- Codeforces #325 C. Gennady the Dentist
- 程序员修炼之路
- Android 应用程序组件
- ARM assembler in Raspberry Pi – Chapter 1