当前位置:首页 » 编程语言 » objectivec和c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

objectivec和c语言

发布时间: 2022-01-14 01:39:44

1. Objective-C和C的区别

区别如下:

1.性质不同

Objective-C,通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。c语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。

2.特点不同

Objective-C是非常实用的语言。它是一个用C写成很小的运行库,令应用程序的尺寸增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大。

3.创始时间不同

Objective-C创始时间是1980年代,C语言创始时间是1972年。

2. 请问 c 语言与object c语言有什么区别

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

3. object c 是c语言吗

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

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

C++ 跟从面向对象编程里的Simula67(一种早期OO语言)学派,而Objecive-C属于Smalltalk学派。 在C++里,对象的静态类型决定你是否可以发送消息给它,而对Objecive-C来说,由动态类型来决定。Simula 67学派更安全,因为大部分错误可以在编译时查出。而Smalltalk学派更灵活,比如一些Smalltalk看来无误的程序拿到Simualr 67那里就无法通过。从很多方面来看,C++和Objective-C的差别,与其说时技术上的,不如说是思维方式上的。

常用的系统快捷键:复制、粘贴 、剪切option+c,Option+V,Alt+table,Option+N,Shift+Option+N

内核环境:主要由Mach和BSD组成,但它同时也包括了网络协议栈、网络服务、文件系统和设备驱动程序

//声明类

@interface Fraction: Object

{

int numerator; //实例变量

int denominator;

}

-(void) print; //实例方法 instance method

-(void) setNumerator: (int) n: (int[U1] )m; //带参数的成员函数

-(void) setDenominator(int)n;

+(void) makeNumber; //类方法 class method,有点static的味道

@end

//实现类

@implementation Fraction;

-(void) print

{ printf (" %i/%i ", numerator, denominator); }

-(void) setNumerator: (int) n: (int)m

{ numerator = n; Denominator = m; }

-(void) setDenominator: (int) d

{ denominator = d; }

+(void) makeNumber{}

@end

//使用类:选择“Command Line Utility”中的“FoundationTool”项

#importFoundation.h>

#import “Fraction.h”

int main (int argc, char *argv[])

{

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];

// Fraction *myFraction = [[Fraction alloc] init];

Fraction *myFraction; //定义指针Fraction对象

myFraction = [Fraction alloc];//分配内存

myFraction = [myFraction init]; //初始化

[myFraction setNumerator: 1:3];

[myFraction setDenominator: 3];

printf ("The value of myFraction is:");

[myFraction print];

printf ("\n");

[myFraction free];

//insert code here...

NSLog(@"Julia is a pretty actress");

[pool release];]

return 0

}

4. object c语言与C++的比较

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

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

C++ 跟从面向对象编程里的Simula67(一种早期OO语言)学派,而Objecive-C属于Smalltalk学派。 在C++里,对象的静态类型决定你是否可以发送消息给它,而对Objecive-C来说,由动态类型来决定。Simula 67学派更安全,因为大部分错误可以在编译时查出。而Smalltalk学派更灵活,比如一些Smalltalk看来无误的程序拿到Simualr 67那里就无法通过。从很多方面来看,C++和Objective-C的差别,与其说时技术上的,不如说是思维方式上的。

常用的系统快捷键:复制、粘贴 、剪切option+c,Option+V,Alt+table,Option+N,Shift+Option+N

内核环境:主要由Mach和BSD组成,但它同时也包括了网络协议栈、网络服务、文件系统和设备驱动程序

//声明类

@interface Fraction: Object

{

int numerator; //实例变量

int denominator;

}

-(void) print; //实例方法 instance method

-(void) setNumerator: (int) n: (int[U1] )m; //带参数的成员函数

-(void) setDenominator(int)n;

+(void) makeNumber; //类方法 class method,有点static的味道

@end

//实现类

@implementation Fraction;

-(void) print

{ printf (" %i/%i ", numerator, denominator); }

-(void) setNumerator: (int) n: (int)m

{ numerator = n; Denominator = m; }

-(void) setDenominator: (int) d

{ denominator = d; }

+(void) makeNumber{}

@end

//使用类:选择“Command Line Utility”中的“FoundationTool”项

#import<Foundation/Foundation.h>

#import “Fraction.h”

int main (int argc, char *argv[])

{

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];

// Fraction *myFraction = [[Fraction alloc] init];

Fraction *myFraction; //定义指针Fraction对象

myFraction = [Fraction alloc];//分配内存

myFraction = [myFraction init]; //初始化

[myFraction setNumerator: 1:3];

[myFraction setDenominator: 3];

printf ("The value of myFraction is:");

[myFraction print];

printf ("\n");

[myFraction free];

//insert code here...

NSLog(@"Julia is a pretty actress");

[pool release];]

return 0

}

5. 学习objectivec一定要先学c吗

可以没有C的基础。与C在语法上还是有些区别的,当然有C的基础最好了,对理解obj-c的内存管理方面是有帮助的。
虽然 Obj-C 是 C 的超集,但是和 C 是两种世界观。(面向过程 和 OO )

的确, C 也可以 OO 。甚至可以说, Obj-C 不就是 C 的非常好的 OO 的例子之一嘛~
不过,没有见过好的,基于 OO 的 C 教材(现实是,如果教材关心 OO ,一般也不会基于 C 了)。所以过程的思维可能会先入为主,那样先学 C 容易被带到沟里去。而一些老的 C 程序员(也很优秀)写的 Java 代码也证实了这点,看的我死的心都有。

其实直接看 Obj-C 也无不可。 iOS App 的 Obj-C 代码是高度框架化和自解释的。涉及 C 的部分一般是底层的一些实现或者自己绘图等内容,相对少用,熟悉了框架,建立了 OO 的概念再深入不迟。(既从 Obj-C -> C )

如果是从 C -> Obj-C ,从过程到 OO 的提升就是人为制造的麻烦(虽然也不太大但是毕竟没有必要)。
而且,你会发现 C 的很多东西 Obj-C 用不到。比如 C 中分量很重的内存地址操作, iOS 的 Obj-C 程序就几乎不涉及。而 Obj-C 绘图部分的一些代码很 C ,一般的 C 教程却不怎么讲,那些内容一般会放到另外一本书里面: 计算机图形学-C 语言。

当然无论是从 Obj-C -> C 还是从 C -> Obj-C , C 的一些相关知识都是需要的。

6. objectivec是什么编程思想

你好。ObjC是进行iOS开发的一门编程语言,也是官方推荐的iOS开发语言。对于没有相应开发经验的人来说,学习ObjC入门会慢一些。一般我把这个学习过程分为三步。

第一步,学习开发语言Objective-C。参考书看《Objective-C基础教程》这本书就行了。书看到后来还需要补充一些关于面向对象的知识,一般计算机专业的学生都是在学C++的时候接触这类思想的。我推荐的那本参考书里也会有一些讲解,进阶的学习需要以后再去看资料,没有特定教材,因为面向对象是一种编程思想,好在Objective-C本身就是这种思想的体现,以后写代码的时候可以慢慢体会。学完《Objective-C基础教程》,就会对iOS开发中所用到的基础数据类有一个了解了,这时候应该就可以写简单的无界面程序了。

第二步,学习iOS开发的软件运行原理,软件开发思想、规范以及一些苹果公司提供的常用标准UI(User Interface,用户界面)控件的使用方法。这个阶段推荐的参考书是《iPhone 4与iPad开发基础教程》,该书有中文译本,虽然不是最新的iOS教程(最新的教程应该是iOS7开发基础教程,但是该书没有中文译本,如果英文过硬,看这本书当然最好)。

第三步,熟悉常用第三方控件。因为苹果本身开放性的局限,其提供的标准开发库会有一些功能局限,智慧无线的网友们开发了各种各样的第三方控件来实现他们想要的功能,可以使开发过程事半功倍。此部分为进阶学习内容,需要在掌握前两步内容的基础上展开。这一步主要是试用,学习第三方代码,要求阅读第三方开发文档以及代码多一些。可以与开发同时进行,边学变进行软件开发。

除了参考书,这里推荐一个网站“Cocoachina苹果开发中文站”里面分享了很多网友的代码,并且可以对自己学习过程中遇到的问题进行讨论。学习初期,中期以及后期进阶都可以在这个论坛找到相应的学习资料与代码,并且可以通过发帖得到大神的技术指点。对应的英文网站是Stackflow,此网站偏重实际开发问题的解决,交流语言为英文。

另外,斯坦福大学每年都开设iOS开发的公开课,从Objective-C的学习到最后的控件使用以及开发思想,架构的学习,都有涉猎,是很好的视频教程。网易公开课中有以往课程配中文字幕的视频,而最新的课程一般没有中文字幕,并且,该课程选择默认学生已经有C++编程基础,可能对于初学者会困难一些。视频属于公开资源,在搜索引擎上搜索斯坦福、iOS等关键字,即可找到相应资源。刚刚简单搜索了一下,优酷已经提供iOS7开发的高清视频专辑。

最后,无论学习哪个操作系统的软件开发,最关键还是要多多练习,因此大量的写练习代码,看别人的优秀代码很重要。

7. 什么ObjectiveC/C++/Java其实就是不想和别人兼容

你别开玩笑了,有些是解释执行,一些是编译执行,谈何兼容,再者它们出现的时间也不同,其他你该说的的操作系统的兼容性,而不是语言。

8. 【C语言】Objective-C 和 C++ 的区别有哪些

这东西跟c++有什么本质区别?为什么苹果会选择obj-c而不是c++? 答:Objective-C是C的扩展,设计思路上借鉴了Smalltalk的面向对象和消息机制的思想。从我个人使用过的面向对象语言来看Objc 是对消息传递支持的最彻底也最显式的。Objective-C的类中定义的方法都是消息传递,而且类和消息之间是运行时绑定的,运行时编译器把消息发送转换成对objc_msgSend方法的调用。其它的C++、Java、Python、Ruby都体现的不明显,更倾向于对象的封装和抽象。 Objective-C和C++基本上是两门语言,没有太大的关系。Objective-C本身是静态语言,编译后就是机器码,执行效率很高,但引入了很多类似Python、Ruby的动态特性,像动态类型推断,id,selector,block等特性,所以又非常灵活。用惯了Java或C++会觉得Objective-C的语法很怪,但是把心放空再去学习这门语言的话,你会很快爱上它的消息式的编程风格,加上XCode,无论是写mac应用还是 ios应用,都会非常得心应手。 学习Objective-C不需要有c的背景,倒是学Objective-C的时候顺手可以把C也学了或温习下,由于Objective-C是C的超集,所以在Objective-C环境执行C程序毫无问题。 关于苹果为什么采用Objective-C的问题,说明一下,其实不是苹果采用了Objective-C,而是乔布斯创建的Next公司的操作系统 NextStep采用了Objective-C作为原生语言。NextStep是以Mach和BSD为基础,Objective-C是其语言和运行库,后来的事大家都清楚,苹果买了NextStep,乔布斯回归苹果,NextStep也成了Max OS X的基础。

9. Objective-C和C语言有什么关系

Objective-C是C语言的严格超集。
任何C语言程序不经修改就可以直接通过Objective-C编译器,在Objective-C中使用C语言代码也是完全合法的。Objective-C被描述为盖在C语言上的薄薄一层,因为Objective-C的原意就是在C语言主体上加入面向对象的特性。Objective-C的面向对象语法源于Smalltalk消息传递风格。所有其他非面向对象的语法,包括变量类型,预处理器,流程控制,函数声明与调用皆与C语言完全一致。但有些C语言语法合法代码在objective-c中表达的意思不一定相同,比如某些布尔表达式,在C语言中返回值为true,但在Objective-C若与yes直接相比较,函数将会出错,因为在Objective-C中yes的值只表示为1。

10. 请问 c 语言与object c语言有什么区别

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