红联Linux门户
Linux帮助

Object-C 究竟是什么?

发布时间:2009-09-04 10:49:36来源:红联作者:sh365
在8月的编程语言排行中,发现有Object-C比较靠前。
想了解一下,Object-C的基本东西。
Object-C 和C及C++有什么关系么?
请了解的简单介绍一下。
我不求深入了解,毕竟不用。
就感到好奇。多知道些吧。哈
谢谢了!
文章评论

共有 6 条评论

  1. o_oxiaocai 于 2012-06-02 22:37:07发表:

    Object C 用的多吗,就linux来说应该不用用到的吧

  2. 于 2012-06-01 14:12:03发表:

    []
    ]
    ]

  3. sh365 于 2009-09-08 15:38:11发表:

    谢谢 xiazhouquan CEO的信息。
    了解了。

  4. comes 于 2009-09-06 16:20:32发表:

    程序的架构如何

  5. coov 于 2009-09-04 11:13:05发表:

    本人的编程很流氓

  6. xiazhouquan 于 2009-09-04 11:04:10发表:

    Objective -C 的介绍

    Objective-C是苹果Mac OS X 上开发的首选语言,主要是因为Mac OS X 技术源自NextStep的OpenStep操作系统, 因为OPENSTEP的软件架构(framework)
    都是用Objetive-C 写成,所以MacOS X上的开发最佳语言自然也就是Objective-C 了。

    Object-C是由 Brad Cox在80年代初在第一个纯面向对象语言Smalltalk基础上写成。后来他创立了StepStone公司从事Objective-C的推广。1988年,Steve Jobs的NextStep采用Objective-C作为开发语言,1992年GNU gcc编译器中包含了对Objective-C的支持(gnu-objc runtime), Dennis Glating 写了第一个run-time。Richard Stallman 第二个,最近的是Kresten Krab Thorup在丹麦读大学时写的, 他后来到NextStep工作。

    目前, Objective-C 是Mac OS X的首要开发语言,也是GNUstep 在Linux 和其它平台上的开发语言。

    Objective-C 是ANSI C的超集,扩展了C 语言使它具备面向对象设计的能力,如类,消息和继承。Objective-C 程序中可以利用现有的C语言代码,使其利用现有的软件架构。这也是为甚莫Objective-C 过去多年间能够成为一种流行的用户界面开发语言而且至今没有消亡,因为一方面用它可以实现底层系统编程,另一方面可以支持利用动态架构进行开发。


    Objective-C 和C++的比较

    单一继承:
    Objective-C不支持多重继承,(同Java和Smalltalk),而C++语言支持多重继承。

    动态:

    Objective-C是动态定型(dynamicaly typed)所以它的类库比C++要容易操作。Objective-C 在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。


    C++ 跟从面向对象编程里的Simula 67(一种早期OO语言)学派,而Objecive-C属于Smalltalk学派。

    在C++里,对象的静态类型决定你是否可以发送消息给它,而对Objecive-C来说,由动态类型来决定。Simula 67学派更安全,因为大部分错误可以在编译时查出。 而Smalltalk学派更灵活,比如一些Smalltalk 看来无误的程序拿到Simualr 67那里就无法通过。

    从很多方面来看,C++和Objective-C的差别,与其说时技术上的, 不如说是思维方式上的。你是否想更安全而舍弃灵活性?Simular67学派的支持者声称既然程序设计出色何必再要灵活性(谎话!),而 Smalltalk学派则辩称为了灵活可以容忍运行时多出错(也是谎话!)