`
lukejin
  • 浏览: 365484 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

初识 Objective-C 面向对象

阅读更多

这里没有细节的语法,大都是关于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
1
2
分享到:
评论

相关推荐

    Object-C语言教程&案例&相关项目资源

    - **Hello, World**:初识Objective-C的简单程序,了解编译运行流程。 - **UI设计**:创建基本的用户界面,包括按钮、文本框等元素。 - **网络请求示例**:实现一个简单的网络请求,展示数据。 - **Core Data...

    oc初识总代码

    Objective-C是苹果公司开发的面向对象的编程语言,它是C语言的一个扩展,主要用于iOS和Mac OS X操作系统上的应用程序开发。 在OC中,我们首先会接触到类(Class)和对象(Object)的概念。类是对象的模板,它定义了...

    Beginning iOS 6 Development Exploring the iOS SDK

    Objective-C是C语言的超集,添加了面向对象的特性,如类、继承、多态等。读者将深入理解Objective-C的基本语法,包括消息传递机制、内存管理(自动引用计数ARC)以及Objective-C的类别和协议。 在理解了语言基础后...

    iPhone游戏编程实例-俄罗斯方块

    Objective-C结合了C语言的高效性和Smalltalk的面向对象特性,非常适合iOS开发。 #### 四、总结 通过分析“iPhone游戏编程实例—俄罗斯方块”这个基于Cocos2d的实战案例,我们不仅了解了iOS游戏开发的基本流程和技术...

    Beginning iPhone 4 Development Exploring the iOS code

    Objective-C是C语言的超集,添加了面向对象的特性,如消息传递和类别。读者将学习如何定义类、创建对象,以及如何利用Objective-C的语法进行方法调用和属性设置。 其次,书中会详细介绍Xcode集成开发环境(IDE)的...

    iphone 3 开发基础教程源码

    Objective-C是iOS开发的主要编程语言,它基于C语言并扩展了Smalltalk的面向对象特性。学习Objective-C,你需要掌握类、对象、消息传递、协议等概念。此外,了解ARC(Automatic Reference Counting)内存管理机制也...

    Beginning_iPhone_3_Development代码

    开发者需要掌握类、对象、协议、继承等面向对象编程概念,以及 Blocks 和 Category 等Objective-C特有的特性。 2. **Cocoa Touch框架**: 这是iOS应用开发的核心框架,包含UIKit、Foundation等库。源码中会用到...

    IOS编程入门-精品教程

    - **面向对象编程基础**:介绍面向对象编程的基本概念,特别强调Objective-C的特点。 #### 第十六部分:如何在你的iPhone App中发送邮件 - **邮件功能的实现**:指导如何利用iOS SDK提供的功能在应用程序中实现发送...

    Beginning iPhone Development:Source code

    Objective-C是C语言的一个超集,它引入了面向对象编程的概念,如类、继承、多态和消息传递等。学习Objective-C是了解苹果生态系统的关键步骤,尤其是对于早期的iOS开发资料。 源代码文件通常包含多个部分,例如: ...

    beginning iphone 4 development

    Objective-C是iOS开发的主要编程语言,它是C语言的超集,添加了面向对象的特性。书中会从基础语法开始,逐步介绍类、对象、消息传递等概念,帮助读者掌握Objective-C的基本用法。此外,还会涉及Swift语言,作为...

    beginning ios 8 programming with swift 第9章源码

    4. **类与结构体**:Swift支持面向对象编程,通过类(`class`)和结构体(`struct`)来创建自定义的数据类型。类具有继承性,结构体没有,但两者都可实现协议(`protocol`)。 5. **枚举与元组**:枚举(`enum`)...

    Beginning iPhone Dev

    Objective-C是一种C语言的超集,增加了面向对象的特性,如消息传递和类别。理解其语法和类库,如Foundation和UIKit,是成为一名合格的iPhone开发者的第一步。 接下来,你会学习到Xcode IDE(集成开发环境)的使用,...

    GCC 中文手册 GCC 全面教程

    由于GCC支持C和C++,手册也会涵盖这两门语言的重要特性,如C的指针操作、结构体和联合体,以及C++的面向对象编程、模板和异常处理。 **多语言支持** GCC不仅限于C和C++,还支持其他编程语言。手册会简要介绍如何...

    CoffeeSquare

    Objective-C是苹果公司早期开发的面向对象的语言,而Swift则是苹果在2014年推出的更现代、更安全的选择。Swift语法简洁,易于学习,且性能强大,因此在新项目中更为推荐。 iOS开发环境的搭建是初学者必须迈过的一步...

    关于学习本专业的一点感触和一些学习建议

    - **面向对象编程基础:** 对于希望在LabVIEW软件开发上有更高成就的同学来说,掌握面向对象编程语言(如Java、C++或Objective-C)是非常有益的。 通过以上分享,希望能够帮助到正在学习LabVIEW或者对LabVIEW感兴趣...

    Swift从入门到精通视频教程下载第1章 来自苹果的编程语言——初识Swift.zip

    11. **类与继承**:Swift中的面向对象编程基础,包括类的定义、初始化、属性、方法、继承和多态。 12. **协议与扩展**:学习如何定义和使用协议,以及如何通过扩展为已有类型添加功能。 13. **Optionals**:Swift...

    beginning mobile phone game programming

    掌握这些语言的基本语法和面向对象编程概念是游戏开发的基石。 3. **图形与动画**:探讨移动设备上的2D和3D图形编程,包括OpenGL ES、Unity的内置渲染系统等。了解如何创建和管理游戏中的角色、场景和动画,提升...

    Beginning.iPhone.and.iPad.Web.Apps

    书中会详细介绍JavaScript的基本语法、DOM操作、事件处理以及面向对象编程等概念。 2. **CSS(Cascading Style Sheets)**:CSS负责网页的布局和样式设计。在iOS设备上,开发者需要特别关注响应式设计,确保Web App...

    Apress.Beginning.iPhone.Development.Exploring.the.iOS.SDK.2014

    本书名为《Apress.Beginning.iPhone.Development.Exploring.the.iOS.SDK.2014》,该书旨在为初学者提供一个全面的指南,教授如何使用iOS 8 SDK及Objective-C来开发iPhone和iPad应用。本书的目标读者是对iOS应用开发...

Global site tag (gtag.js) - Google Analytics