js css html

OC与Java的简单对比

2022-10-31  本文已影响0人  小和大大
  1. 方法的定义:-(返回类型) 方法名:(参数1类型)参数1变量 参数2标签:(参数2类型)参数2变量…

  2. [类或者实例的指针方法名: 参数1 标签2: 参数2… …],

  3. 为了好看,第一个参数一般不加标签名,当然,标签名都可以隐藏的,但不建议这样做, 因为当你接手了一个离职的人程序,其中的JAVA 程序调用了一个有五个甚至更多的参数的方法,但是你手里没有这个方法的API,那么你很难猜得出来这五个参数到底都干什么用的,但是Objective- C调用的时候,每个参数前面都必须有方法的标签名,这样你便能很容易的从标签名看出这个参数是什么意思。

  1. [Fraction t];

  2. [[Fraction class] t];

  3. Class clazz=[Fraction class];[clazz t];

  4. class 来自于NSObject,相当于JAVA 中的getClass()方法,也就是获取这个类的Class 对象,

  5. clazz 前面没有,这是因为Class 已经是一个指针。另外这种嵌套调用的方式,也要习惯,这就和JAVA 中的A.b().c()没有什么区别。

  6. 获取Class 有如下几种方法:

  7. [类或者对象 class]

  8. [类或者对象 superclasss]

  9. NSClassFromString(类名的字符串形式)

  10. 你也可以通过如下的函数把Class 转换为字符串形式:

  11. NSStringFromClass(Class)

  1. 前面看到实例化对象最多的方法是:Fraction frac=[[Fraction alloc] init];

  2. 这跟java不一样,java对象创建只需要new一下,同时调用构造方法(实际上虚拟机层面分为两个步骤:new对象,执行<init>方法(包含构造方法)),但是OC中分为两步:分配内存(同时给变量赋初值)、初始化。

  1. 还记得java中的构造方法没有返回值吧,所以为了达到java这种效果:Test t = new Test(2);OC中需要你手动在普通方法(相当于构造方法)中return self。
  1. -(BOOL) isEqualToString: (NSString) s

  2. 比较两个字符串是否相等,与JAVA 一致的地方是==比较指针,比较对象是否相同要用到equal 方法。

  3. -(NSMutableString) appendString: (NSString) s

  4. 这与JAVA 的StringBuffer 的append 没什么区别。

  1. Cocoa 使用NSArray 表示数组,但是它不能存储基本数据类型、enum、struct、nil,只能存储Objective-C 的对象。

  2. NSArray array=[NSArray arrayWithObjects: @”One”, @”Two”, @”Three”, nil];

  3. 从这个类方法arrayWithObjects 的定义可以看出,它使用nil 表示数组元素结束,这也是nil 不能存储在NSArray 中的原因。

  4. NSMutableArray 为长度可变的数组,相当于JAVA 中的List:

  5. NSMutableArray mArray=[NSMutableArray arrayWithCapacity: 10];

  6. [mArray addObject: @”Apple”];//添加数组元素

  7. NSEnumerator e = [mArray objectEnumerator];//获取数组的迭代器,相当于JAVA 中的Iterator,reserveObjectEnumerator 用于获取反转之后的数组迭代器。与JAVA 一致的地方是你在使用迭代器时,不能对数组进行添加、删除操作。

原文:https://www.cnblogs.com/doubleLWithiOS/p/4348494.html

上一篇 下一篇

猜你喜欢

热点阅读