Objective-C

Objective-C是一种面向对象的编程语言,它是C语言的扩展。该语言主要应用于MacOSX和GNUstep等系统,并且在NeXTSTEP和OpenStep中是基本语言。Objective-C的特点包括小的运行库、对垃圾回收的支持较晚以及缺少命名空间机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是扩充 C 面向对象 编程语言 。它主要使用于 Mac OS X 和GNUstep这两个使用OpenStep标准的系统,而在 NeXTSTEP 和OpenStep中它更是基本语言。Objective-C可以在 gcc 运作的系统写和 编译 ,因为gcc含Objective-C的 编译器
  1 历史
  1980年代初布莱德·确斯(Brad Cox)在其公司Stepstone发明Objective-C。他对 软件 设计和编程里的真实可用度问题十分关心。
  Objective-C最主要的描述是他1986年出版的Object Oriented Programming: An Evolutionary Approach. Addison Wesley. ISBN 0-201-54834-8.
  2 语言分析
  Objective-C是非常“实际”的语言。它使用一个用C写成、很小的 运行库 ,只会令 应用程序 的大小增加很小,和大部分 OO 系统使用极大的 VM 执行时间会取代了整个系统的运作相反。ObjC写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和 Smalltalk 系统要使用极大的 内存 来开启一个 窗口 的情况相反。
  Objective-C的最初版本并不支持 垃圾回收 。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的“ 死亡时间 ”,令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然某些 第三方 版本已加入这个功能(尤是GNUstep), Apple 在其Mac OS X 10.3中仍未引入这个功能。
  另一个问题是ObjC不包括命名空间机制(namespace mechanism)。取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突。在2004年,在 Cocoa 编程环境中,所有Mac OS X类别和函式均有“NS”作为前缀,例如NSObject或NSButton来清楚分办它们属于Mac OS X核心;使用“NS”是由于这些类别的名称在NeXTSTEP开发时定下。
  虽然Objective-C是C的母集,但它也不视C的基本型别为第一级的物件。
  和 C++ 不同,Objective-C不支援运算子多载(它不支持ad-hoc多型)。亦与C++不同,但和 Java 相同,Objective-C只容许物件继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和 二进制 不兼容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值