`

十分钟让你明白Objective-C的语法(和Java、C++的对比)

 
阅读更多

一、函数的对比

helloworld方法
Java 语言:

  1. public void helloWorld(bool ishelloworld) {  
  2. //干点啥  
  3. }  

C++语言:

  1. void helloWorld(bool ishelloworld) {  
  2. //干点啥  
  3. }  

Objective-C语言:

  1. -(void) HelloWorld:(BOOL)ishelloworld{  
  2. //干点啥  
  3. }  

前面带有减号(-) 的方法为实例方法,必须使用类的实例才可以调用的。对应的有+号, 代表是类的静态方法,不需要实例化即可调用。

 

二、消息。
消息的定义:向对象发送信息。
 消息是ios的运行时环境特有的机制。 和C++,Java下的类,或实例调用类或实例的方法类似。我这说的是类似,他们的机制实际上是有很大的差别。
例子:
[object  message]

  1. [object  message:param1 withParameter:param2]  // message方法有param1和param2两个参数
  2. NSString *string;                              // 字符串类型*string
  3. string = [[NSString alloc] initWithString:@"Hello"];    // string赋值hello


上面的代码类似于:
java/c++:object.message()
java/c++:object.message(param1,param2)
java/c++:
string *str ;

str = new string("Hello");

 

三、Import
例子:
import "Class.h"
import <Class.h>
import <director/Class.h>
这个和C++里的include ,java的import类似

 

四 、Property 和Synthesize
Property定义:@property 声明用于自动创建property属性变量的getter和setter
Synthesize定义:@Synthesize声明实现了property属性变量的getter和setter。

例子:
在  interface:@property dataType variableName
在  implementation:  synthesiz variableName

 


四、头文件中的方法

例子:

  1. -(returnType)method  
  2. -(returnType)method:(dataType)param1  
  3. -(returnType)method:(dataType)param1 withParam:(dataType)param2  


类似于:
C/C++/Java

  1. returnType method()  
  2. returnType method(param1)  
  3. returnType method(param1,param2)  


五、self 
指向自己的指针
[self method]

 

类似于:c++/java
this.method();

六、继承关系和接口实现

例子:

  1. ClassA:ParentA  
  2. ClassA:ParentA<Protocol>  
  3. ClassA <Protocol>  


类似于:
java:

  1. ClassA extends ParentA  
  2. ClassA extends ParentA implements interface  
  3. ClassA implements interface  

objective-c的 Protocol和c++、java的接口类似。

七、空指针

id obj = nil;
NSString *hello = nil;

nil相当与Java中的null;

 

八、 id

 objective-c的和C++里的(void*)类似

PS:Objective-C和Java一样,都有运行时环境,有内省的能力。Objective-C和java有很多不同的地方,在iOS系统里,Objective-C的内存需要自己管理,添加了ARC机制后编译器帮助了Objective-C  添加release释放的代码。而Java是通过垃圾回收器管理内存的。

分享到:
评论

相关推荐

    Objective-C与Objective-C++的混用代码示例

    Objective-C是基于C语言的,主要用于构建iOS和macOS应用程序,而Objective-C++则是Objective-C的一个扩展,它引入了C++的特性,使得开发者可以同时利用Objective-C的动态特性和C++的面向对象编程能力。 ### ...

    Objective-C的语法与Cocoa框架.pdf

    Objective-C语法的基石是C语言的语法结构,这意味着所有的C语言代码都可以在Objective-C中直接使用。但是,Objective-C在C的基础上新增了消息传递机制,这是它与C语言的一个重要区别。在Objective-C中,方法调用是...

    Objective-C语法快速参考

    - 如果你有C++、C#或Java等语言的背景,那么学习Objective-C会更容易,因为这些语言有很多相似之处。 通过以上介绍,我们可以看出Objective-C虽然在语法上与其他语言有所不同,但其核心思想和面向对象编程的基本...

    Objective-C基础教程:1天玩转Objective-C语法

    Objective-C基础教程:1天玩转Objective-C语法

    使UltraEdit支持Objective-C语法着色

    启动Ultraedit,依次打开:高级(A) --&gt; 配置(C) --&gt; 编辑器显示 --&gt; 语法着色。找到文档的完整目录名称所指示的目录, 然后把objective-c.uew文件放在对应的目录下即可。

    Objective-C语法总结

    Objective-C的语法有别于C、C++或Java,其最显著的特点包括: 1. 减号(-)和加号(+):减号表示实例方法,即必须通过类的实例来调用的方法;加号表示类方法,可以直接通过类名调用,无需创建实例。 2. 中括号(...

    在Objective-C中使用C++

    需要使用`@interface`定义一个桥接接口,让C++类遵循Objective-C协议,或者使用Objective-C++(`.mm`文件)来处理转换。 4. **内存管理** Objective-C使用ARC(Automatic Reference Counting)自动管理内存,而C++...

    Objective-C基础教程(入门教程).pdf

    综上所述,本教程覆盖了Objective-C编程语言的基础知识点,不仅包括语法和结构,还包括与C语言的兼容性、内存管理机制、面向对象编程的核心概念、以及如何在不同操作系统平台上进行开发的介绍。通过这些内容的学习,...

    Objective-C语言入门教程&深入浅出,理论实践相结合.pdf

    Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 ...

    Objective-C语言核心语法

    总的来说,Objective-C语言的核心语法包括类的定义和消息传递机制,内存管理和对象生命周期管理,以及类型系统特别是`id`、`Class`和`SEL`的使用。这些知识点对于从C++转战Objective-C的开发者来说至关重要,理解并...

    从 C++ 到 Objective-C 快速精通

    C++11也引入了类似的概念,但Objective-C的Block在语法和使用上有所不同。 6. Foundation框架:Objective-C的基础库Foundation框架提供了许多核心的类和功能,如NSArray、NSDictionary等容器类,以及NSString、...

    Object-C语言教程-提供了 Objective-C 的基本语法和一些示例,希望能够帮助你快速入门 Objective-C

    ### Objective-C语言教程知识点...通过本教程的学习,你将能够掌握Objective-C的基本语法,并具备构建macOS和iOS应用程序的能力。Objective-C的应用范围广泛,不仅适用于桌面应用开发,更是iOS应用开发的首选语言之一。

    Objective-C语法概要

    ### Objective-C语法概要知识点详解 #### 一、Objective-C简介 Objective-C是一种结合了C语言与面向对象特性...以上是对Objective-C语法概要的详细解析,希望可以帮助读者更好地理解Objective-C的核心概念和技术要点。

    Objective-c语言学习-快速入门完整版完整版

    Objective-C是一种强大的面向对象编程语言,它是苹果生态系统中开发iOS和macOS应用程序的主要语言。本教程将通过一系列的PPT课件,引导你快速入门Objective-C,这些课件覆盖了从基础到高级的重要概念,是《iPhone与...

Global site tag (gtag.js) - Google Analytics