OC与Java的对比
| 对比项 | Java | Objective-C |
|---|---|---|
| 引入 | import java.util.Map; |
#import "MyTest.h"或@class MyTest |
| 基类 | java.lang.Object |
NSObject |
| 接口 | public interface MyTestFace {…} |
@protocol MyTestFace <NSObject>…@end |
| 类 | public class MyTest{…} |
@interface MyTest: NSObject…@end @implementation MyTest…@end |
| 类继承 | public class My extends MyP{…} |
@interface My: MyP…@end |
| 实现接口 | public class My implements MyF{…} |
@interface MyTest: NSObject<MyF>…@end |
| 方法定义 | public String executeTest() { return "Hello";} |
- (NSString *) executeTest{ return @"Hello";} |
| 类方法 | public static String executeTest() { return "Hello";} |
+ (NSString *) executeTest{ return @"Hello";} |
| 带1个参数方法 | public String exeTest(String strP) { return strP;} |
- (NSString *) exeTest:(NSString *)strP{ return strP;} |
| 带n个参数方法 | public int exeTest(int i1,int i2,int i3){ return i1+i2+i3;} |
- (int) exeTest:(int)i1 i2:(int)i2 i3:(int)i3{ return i1+i2+i3;} |
| 成员变量 | public String title; |
@property NSString *title; |
| 静态变量 | public static String title="Hello"; | static NSString *title =@"Hello"; |
| 实例化 | MyTest myObj = new MyTest(); |
MyTest *myObj =[[MyTest alloc] init]; |
| 方法调用 | myObj. executeTest(); |
[myObj executeTest]; |
| 1个参数方法调用 | myObj. executeTest(1); |
[myObj executeTest:1]; |
| n个参数方法调用 | myObj. executeTest(1,2,3); |
[myObj executeTest:1 i2:2 i3:3]; |
| 成员赋值 | myObj. title="Hello"; |
myObj. title=@"Hello"; |
| 空值 | null |
nil |
| 通用类 | java.lang.Object |
id或instancetype |
| 输出 | System.out.println("Hello); |
NSLog(@"Hello"); |
OC类是由 两部分组成。
interface负责声明方法、变量,与传统的接口概念相似OC的继承是定义在
interface中的
公众号“编程之路从0到1”