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不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。
Object-c优点和缺点
最新推荐文章于 2021-05-20 06:40:23 发布
Objective-C是一种轻量级的面向对象编程语言,它使用较小的C运行库,使得应用程序的大小增加有限。相比其他系统,它的执行时间更短,内存占用也较低。尽管早期版本不支持垃圾回收,但现代版本如GNUstep已加入此功能。此外,Objective-C缺乏命名空间机制,导致类别名称需要加前缀以避免冲突。
摘要由CSDN通过智能技术生成