这里没有细节的语法,大都是关于Objc面向对象概念理解的东西.
1.前言
语言其本质上都是某种抽象,不管是现实生活中人们交流的语言,还是计算机语言.
2. 对象
在Objective-C中,所有的对象都有一个共同的特征,就是每一个对象都包含一个isa指针.这个指针指向当前对象所属的类.
在Objective-C中存在一个名为id的类型,这个和上面所说这个isa指针有一定的联系.
typedef struct objc_object {
Class isa;
} *id;
其中Class类型为指向objc_class结构体的指针类型.
这些对象在内存中都是由其地址唯一标示,所有的对象都是id类型的.
我们继续来将这个isa指针,通过isa指针我们可以在运行的时候知道当前对象是属于什么Class的,
对象的内存管理:
在Objective-C中,存在两种内存管理的方式
一种是基于引用技术的,在这种情况下,程序员需要时刻注意内存的申请和释放,以免发生内存泄露.
还有一种是垃圾回收,学过Java的同学都知道java的垃圾回收,使得程序员从繁杂容易出错的内存释放工作中得到解放.
目前在Pihone的开发环境中不支持垃圾回收的方式.
3.消息
消息这个概念是比较特殊的,在其他的一般的计算机语言中都叫做方法调用或者函数调用,但在Objective-C中,很形象的叫做消息,在语法上也和别的语言的函数或者方法差别很大.
在我们现实生活中,人和人进行沟通就是通过不同形式的消息进行的,比如说邮件,首先得有接受者,然后将消息内容通过邮件发送给接受者.
如果将上面的情景用Objc的消息语法描述出来差不多是这样的
[邮件接受者 邮件:邮件内容]
我们将邮件接受者称为receiver,邮件:邮件内容的整体称作message
[Receiver message]
如果将message再分解,我们可以写成下面的
[Receiver selector:argument]
这种情景在别的语言中就是调用recevier这个对象的某个方法
这里的selector为方法名,他在消息发送的时候,会”选择”一个方法的实现来运行,所以这里的方法名被称作为选择器
而且这里的selector也是Objective-C实现多态的关键所在.
4.类
在Objective-C中,类只支持单继承.
在程序运行的时候,编译器会自动根据你的类定义生成一个”类对象”,这个”类对象”是类实例对象的原型,它知道如何去创建属于这个类的实例对象.
实例对象拥有各自变量属性,而方法都是共享的.
“类对象”的type都为Class,上面有提到过Class类型为指向objc_class结构体的指针类型.
在Objective_C中NSObject类是一个根类
- 大小: 29.5 KB
分享到:
相关推荐
初识Python 初中信息技术-初识Python-课件全文共16页,当前为第1页。 学习目标 1.初步了解Python编程环境,了解print()函数 2.了解算法的概念和特征;理解算法在生活、学习中的重要意义。' 3.了解Python语言中常用...
第1章-初识Visual-Basic-NETppt课件(全).ppt
初识rosetta-workshop课件1-introduction(英文版)
IoT-Camera学习笔记之初识IoT-Camera
初识计算机-PPT.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
初中信息技术-初识python-课件.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
第四章 面向对象(上) .ppt,第四章 面向对象(上) .ppt,第四章 面向对象(上) .ppt,第四章 面向对象(上) .ppt
01初识Scratch-游来游去的小鱼
04 第四章 JavaScript对象及初识面向对象.md
让不懂编程的人爱上Unity3d游戏开发007-初识神兵-Unity3d的前世今生1
适合C语言初学者
1、hive的产生背景 2、hive的定义 3、hive的本地安装 4、hive的基本类型 5、hive的基本命令
这是我自己作为一个新手小白在刚开始学习中所做出的笔记
初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用.mht初识Firebug全文--Firebug的使用...
这是我大一上学期刚学完C语言后,开始学习C++,开始接触面向对象编程这一概念。 在学习C++过程中,加深了我对编程的理解,比如python为什么很多方法可以对不同的数据类型进行操作,同时模板类,泛型编程帮助我可以...
第1节-初识C语言.pdf
从初识C语言到C语言进阶源码.zip从初识C语言到C语言进阶源码.zip从初识C语言到C语言进阶源码.zip从初识C语言到C语言进阶源码.zip从初识C语言到C语言进阶源码.zip
对于刚刚了解oracle的同学会有所帮助,从安装到卸载以及一些简单的数据库管理、sql语句操作、plsql编程。