objective-c for Java程序员 第一部分

对象和基本类型

Java包含了原始的,或一小部分的内在类型。这些值是不是对象是Java和Smalltalk之间最大的语义上的区别之一。在Smalltalk中,原始类型被视为对象,并通过编译器或虚拟机的透明盒装。在Java和Objective-C,它们是明确的。

Java只有一个原始类型的一小部分;四种符号整数,两种(签字)浮点值,布尔,字符。Objective-C的所有C支持的原始类型。核心组是相似的,但有一些重要的差异。首先是C只定义了一种类型的最小范围。短Java中始终是16位。短在C通常是16位。Java中的一个 int, 始终是32位。一个 int, 在C是16,32或64位的平台上,今天存在,可能在未来的128位,但通常是32位的平台上,在那里你可以使用Objective-C的。

Objective-C中继承的typedef从C关键字和一个标准的定义很多。stdint.h头,例如,定义uint32_tint32_t类型的,总是无符号的或签署的每一个平台上,你可以使用32位整数。

一个的typedef “,Objective-C的标准提供了D型是BOOL,这应该只有YESNO。这实在是一个 char (在大多数平台上的八位位组),并有各种不同的方法,它可能会得到一个值是既不YESNO

Java和Objective-C中的份额为原始类型相同的初始化规则。如果他们在声明一个实例变量中的对象(什么是Java调用一个字段),那么他们将被初始化为0时被实例化的对象。如果他们是局部变量,那么他们将被初始化为一个未定义的值。

从技术上讲,Objective-C中没有定义如何实例化对象。不像Java,Objective-C中没有定义所有的内存模型,它继承了它是从C对象,按照惯例,分配的东西,包装的Ç calloc()函数的库函数。OS X上,这个包裹是相当复杂的,但最终的结果是,你创建的每个对象将未初始化的值设置为0。

一个重要的区别是,Objective-C中继承所有C.在Java中的非结构性对象类型,一切都是一个对象或一个原始。Objective-C中,你也有结构,原始阵列,和工会。

Cocoa在一些地方使用的一些结构,这些包括类似的事情的NSPoint,这代表了二维空间中的点。不同的对象,它们总是通过引用传递,结构通常是按值传递。他们比真实的对象还要容易创建。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐