• 热门专题

iOS开发核心语言ObjectiveC语言简介及特性

作者:  发布日期:2015-08-08 22:46:41
Tag标签:语言  特性  核心  
  • 本分享是面向有意向从事iOS开发的伙伴们,或者已经从事了iOS的开发者。如果您对iOS开发有极高的兴趣,可以与我一起探讨iOS开发,一起学习,共同进步。如果您是零基础,建议您先翻阅我之前分享的iOS开发分分钟搞定C语言系列,然后在开始Objective C语言的学习,如果您遇到问题也可以与我探讨,另外将无偿分享自己整理的大概400G iOS学习视频及学习资料,都是干货哦!!由于时间有限,每天在工作之余整理的学习分享,难免有不足之处,也希望各路大神指正!

     

     

    一、Objective-C简介

    Objective-C是一种面向对象的计算机语言 OC不是一门全新的语言 C语言的基础上增加了一层最小的面向对象语法 OC完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发Mac OS X平台和iOS平台的应用程序

    二、OC和C对比
    1.源文件对比
    (1)C语言中常见源文件.h头文件,.c文件
    (2)OC中的源文件.h头文件,.m与.mm的实现文件

    2.关键字对比

    3.数据类型对比

    4.流程控制语句对比

    5.函数(方法)定义和声明对比
    编写C语言函数的规律: 1.确定函数名称 2.确定形参 3.确定返回值 4.确定返回值类型
    编写OC方法也有规律, 规律和C语言一模一样

    6.面相对象新增特性
    (1)封装性
    (2)继承性
    (3)多态性

    7.面向对象新增语法
    (1)属性生成器
    @property
    @synthesize

    (2)分类 categroy
    分类与继承
    使用分类扩展类,无需子类化

    (3)协议
    使用协议声明方法
    协议类似于C#,java中的接口

    (4)Fundation框架
    创建和管理集合,如数组和字典
    访问存储在应用中的图像和其他资源
    创建和管理字符串
    发布和观察通知
    创建日期和时间对象
    操控URL流
    异步执行代码

    8.新增异常处理

    三、OC语法预览

    1.关键字
    基本上所有关键字都是以@开头
    下面列举一些常见的关键字:
    @interface、@implementation、@end
    @public、@protected、@private、@selector
    @try、@catch、@throw、@finally
    @protocol、@optional、@required、@class
    @property、@synthesize、@dynamic
    self、super、id、_cmd、__block、__strong、__weak、

    2.OC程序的开发过程

    这里写图片描述

    四、面向对象思想
    面向对象是相对面向过程而言,面向对象和面向过程都是一种思想,面向过程是做任何事情都要亲力亲为,而面向对象是只关注的时解决问题需要的那些步骤。

    面向对象的特点
    (1)是一种符合人们思考习惯的思想
    (2)可以将复杂的事情简单化
    (3)将程序员从执行者转换成了指挥者
    完成需求时:
    先要去找具有所需的功能的对象来用。
    如果该对象不存在,那么创建一个具有所需功能的对象。
    这样简化开发并提高复用。

    类与对象的关系
    OC中创建对象比较复杂, 首先要理解一个概念叫做类.
    现实生活中是根据一份描述,一份模板创建对象,编程语言也一样,也必须先有一份描述,在这个描述中说清楚将来创建出来的对象有哪些属性和行为。

    如何声明一个类
    注意:
    1.必须以@interface开头,@end结尾
    2.成员变量的声明,必须写在@interface与@end之间的大括号中
    3.方法的声明必须在{}下面,不能写在{}中

    这里写图片描述

    如何实现一个类

    注意:
    1.必须以@implementation开头,@end结尾
    2.类名必须和声明的一致

    如何创建一个对象
    特征
    对象方法以-开头如 -(void)xx;
    对象方法只能由对象来调用
    对象方法中可以访问当前对象的成员变量
    调用格式 [对象名 对象方法名];

    类方法的声明和实现
    1.类方法声明
    格式
    将对象方法-号变为+号

    特征

    类方法以+开头 如+(void)put;
    类方法只能由类来调用
    类方法中不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间 来存储类中的成员变量。

    类方法的好处:
    节省内存空间
    不依赖于对象,执行效率更高;
    能用类方法解决的问题,尽量使用类方法;

    类方法的应用场合:
    当方法内部不需要使用到成员变量(属性)时,可以改为类方法
    类方法一般用于编写工具方法

    对象方法和类方法区别
    1.对象方法
    对象方法是属于对象的
    以减号-开头
    只能让对象调用,没有对象,这个方法根本不可能被执行
    对象方法能访问实例变量(成员变量)
    对象方法中可以调用当前对象的对象方法
    对象方法中可以调用其他对象的对象方法
    对象方法中部可以调用类方法

    2.类方法
    类方法是属于类的
    以加号+开头
    只能用类名调用,对象不能调用
    类方法中不能直接访问实例变量(成员变量)
    类方法中不能直接调用对象方法,要想调用对象方法,必须创建或传入对象。

    使用场合:
    当不需要访问成员变量(属性或成员变量)的时候,尽量用类方法
    类方法和对象方法可以同名

    isa指针
    每一个对象都包含一个isa指针(isa是一个指针, 占8个字节).这个指针指向当前对象所属的类。
    [p eat];表示给p所指向的对象发送一条eat消息,调用对象的eat方法,此时对象会顺着内部的isa指针找到存储于类中的方法,执行。
    isa是对象中的隐藏指针,指向创建这个对象的类。
    通过isa指针我们可以在运行的时候知道当前对象是属于那个Class(类)的。

    常见错误
    1.只有类的声明,没有类的实现
    2.漏了@end
    3.@interface和@implementation嵌套
    4.成员变量没有写在括号里面
    5.方法的声明写在了大括号里面
    6.成员变量不能在{}中进行初始化、不能被直接拿出去访问
    7.方法不能当做函数一样调用
    8.OC方法只能声明在@interface和@end之间,只能实现在@implementation和@end之间。也就是说OC方法不能独立于类存在
    9.C函数不属于类,跟类没有联系,C函数只归定义函数的文件所有
    10.C函数不能访问OC对象的成员
    11.低级错误:方法有声明,但是实现的时候写成了函数
    12.OC可以没有@interface同样可以定义一个类

     

     

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规