oc和java_oc与java c++语法区别
頭文件:
實現(xiàn)文件, 類似于C++的.cpp文件:
一、函數(shù)的對比
helloworld方法
Java 語言:
public?void?helloWorld(bool?ishelloworld)?{
//干點啥
}
C++語言:
void?helloWorld(bool?ishelloworld)?{
//干點啥
}
Objective-C語言:
-(void)?HelloWorld:(BOOL)ishelloworld{
//干點啥
}
前面帶有減號(-) 的方法為實例方法,必須使用類的實例才可以調(diào)用的。對應(yīng)的有+號, 代表是類的靜態(tài)方法,不需要實例化即可調(diào)用。
二、消息。
消息的定義:向?qū)ο蟀l(fā)送信息。
消息是ios的運行時環(huán)境特有的機(jī)制。 和C++,Java下的類,或?qū)嵗{(diào)用類或?qū)嵗姆椒愃?。我這說的是類似,他們的機(jī)制實際上是有很大的差別。
例子:
[object ?message]
[object??message:param1?withParameter:param2]
NSString?*string;
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
import
這個和C++里的include ,java的import類似
四 、Property 和Synthesize
Property定義:@property 聲明用于自動創(chuàng)建property屬性變量的getter和setter
Synthesize定義:@Synthesize聲明實現(xiàn)了property屬性變量的getter和setter。
例子:
在 ?interface:@property dataType variableName
在 ?implementation: ?synthesiz variableName
四、頭文件中的方法
例子:
-(returnType)method
-(returnType)method:(dataType)param1
-(returnType)method:(dataType)param1?withParam:(dataType)param2
類似于:
C/C++/Java
returnType?method()
returnType?method(param1)
returnType?method(param1,param2)
五、self
指向自己的指針
[self method]
類似于:c++/java
this.method();
六、繼承關(guān)系和接口實現(xiàn)
例子:
ClassA:ParentA
ClassA:ParentA
ClassA?
類似于:
java:
ClassA?extends?ParentA
ClassA?extends?ParentA?implements?interface
ClassA?implements?interface
objective-c的 Protocol和c++、java的接口類似。
七、空指針
id obj = nil;
NSString *hello = nil;
nil相當(dāng)與Java中的null;
八、 id
objective-c的和C++里的(void*)類似
PS:Objective-C和Java一樣,都有運行時環(huán)境,有內(nèi)省的能力。Objective-C和java有很多不同的地方,在iOS系統(tǒng)里,Objective-C的內(nèi)存需要自己管理,添加了ARC機(jī)制后編譯器幫助了Objective-C ?添加release釋放的代碼。而Java是通過垃圾回收器管理內(nèi)存的。
總結(jié)
以上是生活随笔為你收集整理的oc和java_oc与java c++语法区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卧龙吟
- 下一篇: python for循环九九乘法表_py