objective c objectC

很多想开发iOS,或者正在开发iOS的程序员,之前都做过Ja或者C++。当他们第一次看到Objective-C的代码时,他们会很头疼。Objective-C的代码和Ja、c++在语法上有很大的不同,有些同学会觉得像在读天书。但是,语言是相通的,有很多共性。下面是Objective-C语言与Ja、C++的语法对比,让你很容易理解Objective-C的语法是什么。

首先,看看Objective-C头文件和实现文件中的内容:

头文件:

objective c objectC

实现文件,类似于。C++的cpp文件:

第一,功能比较

Helloworld方法

Ja语言:

public void helloWorld(bool ishelloworld) {//干点啥​​​​​​​}

C++语言:

void helloWorld(bool ishelloworld) {//干点啥}

目标-C语言:

-(void) HelloWorld:(BOOL)ishelloworld{//干点啥}

前面带有减号(-)的方法是实例方法,只能通过使用类的实例来调用。对应的符号是+,表示它是类的静态方法,无需实例化即可调用。

第二,新闻。

消息的定义:向对象发送信息。

消息是ios运行时环境特有的机制。类似于C++,Ja下的类,或者实例调用类或实例。我说的是相似,他们的机制其实很不一样。

示例:

[对象消息]

[object message:param1 withParameter:param2]NSString *string;string = [[NSString alloc] initWithString:@”Hello”];

上面的代码类似于:

ja/c++:object.message()

ja/c++:object.message(param1,param2)

ja/c++:

string * str

str =新字符串(” Hello “);

三。导入

示例:

导入“Class.h”

导入& ltClass.h & gt

导入& ltdirector/class . h & gt;

这类似于C++中的include和Ja中的import。

第四,性质和合成

属性定义:@Property声明getter和setter,用于自动创建property属性变量。

Synthsize定义:@ Synthsize声明实现property属性变量的getter和setter。

示例:

在接口:@ propertydatatypevariablename

在实现中:合成变量名

第四,头文件中的方法

示例:

-(returnType)method -(returnType)method:(dataType)param1 -(returnType)method:(dataType)param1 withParam:(dataType)param2

类似于:

C/C++/Ja

returnType method() returnType method(param1) returnType method(param1,param2)

动词 (verb的缩写)自己

指向自己的指针

[自我方法]

类似于:c++/ja

this . method();

第六,继承关系和接口实现

示例:

ClassA:ParentA ClassA:ParentA<Protocol> ClassA <Protocol>

类似于:

ja:

ClassA extends ParentA ClassA extends ParentA implements interface ClassA implements interface

objective-c的协议类似于c++和ja的接口。

七,空指针

id obj = nil

NSString * hello = nil

Nil等价于Ja中的null

八、身份证

objective-c的id类似于C++中的(void*)

PS: Objective-C和Ja一样,有运行时环境和自省能力。Objective-C和ja有很多不同之处。在iOS系统中,Objective-C的内存需要自己管理。添加ARC机制后,编译器帮助Objective-C添加release发布的代码。Ja通过垃圾收集器管理内存。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论