与Java相比,Objective C中的术语和概念有哪些不同的名称?

use*_*100 10 java cocoa objective-c

我希望列出一下java和objective c之间的一些区别,以减轻我的困惑.当我知道所谓的事情时,它可以更容易地解释我的困难.

例如:

  • null - 无
  • 这个 - 自我
  • 地图 - 字典(甚至不太确定这个)

我正在寻找的是与我列出的相似的比较或更正.不仅限于语言中的元素,还包括概念......

Rya*_*yne 12

你对map = dictionary是正确的.我要补充一下:

  • @ public,@ private,@ protected(默认值)仅用于实例变量(不是方法),并且像C++的可见性修饰符一样工作(即将它们声明为节标题而不是每个变量之前).
  • 类方法类似于Java中的静态方法
  • 只有两种数据结构:NSDictionary和NSArray(在不可变和可变的变体中).这些都经过高度优化,适用于大多数情况.对于其他一切,有CHDataStructures
  • @interface不像Java的接口那样工作 - 它定义了单个类的实例变量和方法.
  • 你需要头文件.C应该归咎于此.这非常糟糕,因为保持这些是不必要的痛苦.
  • 没有"包"的概念.最接近的是框架,但这些不应该用作Java的包(即不要仅仅为了组织你的类而创建它们).
  • 而不是"new Class()",而是[[Class alloc] init].可以将"alloc"视为new运算符,将init视为构造函数.
  • id是通用对象指针,类似于Java中Object类型的引用.
  • 基类是NSObject.NSObject的继承不是自动的,必须明确指定.

  • 类方法与静态方法根本不同,因为类方法是动态调度的,可以被子类覆盖.与静态方法最接近的是直接C函数.NSObject不是_the_基类,它是_a_基类.最常见的替代方案是NSProxy.哦,还有NSSet和NSCountedSet.:-) (3认同)