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

刚刚使用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)有些方法名后有冒号,有些没有呢?如何判断什么时候有,什么时候没有?

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值