IOS开发-Objective-C面向对象编程基础知识

1)Objective-C的类定义包含两个部分,一是类接口的声明,二是类方法的实现。

2)所有的 Objective-C的所有编译指示都以@打头。

a)类接口以@interface开始以@end结束。

b)类的实现以@implementation开始以@end结束。

c)每个实现文件必须包含它自己对应的接口文件,这样实现文件中就可以安全的将 父类名删除,将类的instance变量声明删除,只关注类的方法的实现;可以这样做的原因是我们没有必要重复接口文件中同样的声明。

d)不要将源文件中的函数参数命名成与该类成员变量同名的变量,否则函数的参数名会覆盖类的成员变量,导致在该函数的实现中看不到类定义中的成员变量。

如在头文件中一个类接口声明如下:

@interface Circle:NSObject

{

ShapeRect bounds;

ShapeColor fillColor;

}

- (void) SetFillColor: (ShapeColor) fillColor;

- (void) SetBounds: (ShapeRect) bounds;

- (void) draw;

@end //Circle

我们源文件中类的实现如下:

@implementation Circle

- (void) SetFillColor: (ShapeColor)c

{

fillColor = c;

}

- (void) SetBounds: (ShapeRect)b

{

bounds = b;

}

- (void) draw

{

NSLog(@"drawing a circle at (%d,%d,%d,%d) in %@",bounds.x,bounds.y,bounds.width,bounds.hight,colorName(fillColor));

}

@end //circle

3)id 比较独特,在Objective-C中它是一种泛型,该类型的变量可以存储指向任何一个对象的指针。

4)向一个对象发送一个消息,那么该对象又是如何去执行该消息所对应的代码呢?

每个对象都包含一个指向其类的指针,而类也包含一个指针该指针指向该类的代码区域。

这样当对象收到一个消息,对象通过其包含的指向找到其所属的类对象,通过类对象的代码区指针又可以找到与消息对应的函数。

每个对象都包含一个名叫isa的指针,就是该指针指向类。

5)Objective-C中的基本术语:

:类是一种结构,它用于表示一个对象的类型。对象通过isa指针来引用类来获得与本身有关的所有信息,尤其是像4)中所说的如何执行每种操作的代码。

对象:也是一种结构,该结构主要包含成员变量的值和指向其类的隐藏指针(isa);同一类的所有象共享一份代码。

实例:是“对象”的另外一种称呼。

消息:是对象可以执行的操作,用于通知对象去做什么,一个对象能响应哪些消息可以从接口定义中知道。

方法:为响应消息而运行的代码。根据对象的类,消息可以调用不同的方法。

接口:是对对象的类应该提供的特性的描述。相当于是告诉其他使用该类的客户,该类的对象可以接收哪几个消息。与上面说的“消息”术语一致。

实现:是使接口正常工作的代码,也就是使对象消息正常工作的代码。与上面的“实现”术语一致。

6)有些方法名后有冒号,有些没有呢?如何判断什么时候有,什么时候没有?

如果方法使用参数,则需要冒号;否则不需要冒号。如上面的代码片断。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。