Objective-C面向对象初体验

移动开发 iOS
Objective-C面向对象初体验是本文要介绍的内容,主要是来了解面向对象语言Objective-C,这里没有细节的语法,大都是关于Objective-C面向对象概念理解的东西。

Objective-C面向对象初体验是本文要介绍的内容,主要是来了解面向对象语言Objective-C,这里没有细节的语法,大都是关于Objective-C面向对象概念理解的东西,来看详细内容讲解。

1、前言

语言其本质上都是某种抽象,不管是现实生活中人们交流的语言,还是计算机语言.

2、对象

在Objective-C中,所有的对象都有一个共同的特征,就是每一个对象都包含一个isa指针.这个指针指向当前对象所属的类.

Objective-C面向对象初体验

Objective-C中存在一个名为id的类型,这个和上面所说这个isa指针有一定的联系.

C代码 

  1. typedef struct objc_object {     
  2. Class isa;     
  3. } *id;    
  4. typedef struct Objective-C_object {  
  5. Class isa;  
  6. } *id;   

其中Class类型为指向objc_class结构体的指针类型.

这些对象在内存中都是由其地址唯一标示,所有的对象都是id类型的.

我们继续来将这个isa指针,通过isa指针我们可以在运行的时候知道当前对象是属于什么Class的,

对象的内存管理:

在Objective-C中,存在两种内存管理的方式

一种是基于引用技术的,在这种情况下,程序员需要时刻注意内存的申请和释放,以免发生内存泄露.

还有一种是垃圾回收,学过Java的同学都知道java的垃圾回收,使得程序员从繁杂容易出错的内存释放工作中得到解放.

目前在Pihone的开发环境中不支持垃圾回收的方式.

3、消息

消息这个概念是比较特殊的,在其他的一般的计算机语言中都叫做方法调用或者函数调用,但在Objective-C中,很形象的叫做消息,在语法上也和别的语言的函数或者方法差别很大.

在我们现实生活中,人和人进行沟通就是通过不同形式的消息进行的,比如说邮件,首先得有接受者,然后将消息内容通过邮件发送给接受者.

如果将上面的情景用Objective-C的消息语法描述出来差不多是这样的

[邮件接受者  邮件:邮件内容]

我们将邮件接受者称为receiver,邮件:邮件内容的整体称作message

  1. [Receiver message] 

如果将message再分解,我们可以写成下面的

  1. [Receiver selector:argument] 

这种情景在别的语言中就是调用recevier这个对象的某个方法

这里的selector为方法名,他在消息发送的时候,会”选择”一个方法的实现来运行,所以这里的方法名被称作为选择器

而且这里的selector也是Objective-C实现多态的关键所在.

4、类

在Objective-C中,类只支持单继承.

在程序运行的时候,编译器会自动根据你的类定义生成一个”类对象”,这个”类对象”是类实例对象的原型,它知道如何去创建属于这个类的实例对象.

实例对象拥有各自变量属性,而方法都是共享的.

“类对象”的type都为Class,上面有提到过Class类型为指向objc_class结构体的指针类型.

在Objective_C中NSObject类是一个根类。

小结:Objective-C面向对象初体验的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2012-06-15 09:47:48

Objective-CCategory

2011-06-17 17:27:29

Objective-CCocoa苹果

2011-08-04 11:04:14

Objective-C 面向对象 继承

2011-07-19 17:24:31

Objective-C 对象

2011-07-18 16:48:02

Cocoa Objective-

2011-08-17 11:05:22

Objective-C方法

2011-08-10 18:07:29

Objective-C反射

2013-03-27 12:54:00

iOS开发Objective-C

2011-05-11 11:20:26

Objective-C

2013-06-20 10:40:32

Objective-C实现截图

2011-05-11 15:58:34

Objective-C

2011-08-04 13:32:21

Objective-C 方法 对象

2011-08-04 14:58:37

Objective-C Cocoa NSString

2011-05-11 13:54:08

Objective-C

2011-05-11 15:45:50

内存管理Objective-C

2011-08-02 13:16:36

Objective-C 语法 函数

2011-08-04 11:15:46

Objective-C 构造函数 构造方法

2011-05-11 14:06:49

Objective-C

2013-08-21 14:57:42

objective-c问题

2014-04-30 10:16:04

Objective-CiOS语法
点赞
收藏

51CTO技术栈公众号