oc與java c++文法區別

來源:互聯網
上載者:User

標籤:

標頭檔:

 

實現檔案, 類似於C++的.cpp檔案:


 


一、函數的對比

helloworld方法
Java 語言:

[cpp] view plaincopy 
  1. public void helloWorld(bool ishelloworld) {  
  2. //幹點啥  
  3. }  

C++語言:

[cpp] view plaincopy 
  1. void helloWorld(bool ishelloworld) {  
  2. //幹點啥  
  3. }  

Objective-C語言:

[cpp] view plaincopy 
  1. -(void) HelloWorld:(BOOL)ishelloworld{  
  2. //幹點啥  
  3. }  

前面帶有減號(-) 的方法為執行個體方法,必須使用類的執行個體才可以調用的。對應的有+號, 代表是類的靜態方法,不需要執行個體化即可調用。

 


二、訊息。
訊息的定義:向對象發送資訊。
 訊息是ios的運行時環境特有的機制。 和C++,Java下的類,或執行個體調用類或執行個體的方法類似。我這說的是類似,他們的機制實際上是有很大的差別。
例子:
[object  message]

[cpp] view plaincopy 
  1. [object  message:param1 withParameter:param2]  
  2. NSString *string;    
  3. string = [[NSString alloc] initWithString:@"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

 


四、標頭檔中的方法

例子:

[cpp] view plaincopy 
  1. -(returnType)method  
  2. -(returnType)method:(dataType)param1  
  3. -(returnType)method:(dataType)param1 withParam:(dataType)param2  


類似於:
C/C++/Java

[cpp] view plaincopy 
  1. returnType method()  
  2. returnType method(param1)  
  3. returnType method(param1,param2)  


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

 

類似於:c++/java
this.method();

六、繼承關係和介面實現

例子:

[cpp] view plaincopy 
  1. ClassA:ParentA  
  2. ClassA:ParentA<Protocol>  
  3. ClassA <Protocol>  


類似於:
java:

[cpp] view plaincopy 
  1. ClassA extends ParentA  
  2. ClassA extends ParentA implements interface  
  3. ClassA implements interface  

objective-c的 Protocol和c++、java的介面類似。

七、null 指標

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是通過記憶體回收行程管理記憶體的。

oc與java c++文法區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.