认识OC

之前提过,C是面向过程的,OC是面向对象的,有人说OC并不能完全说面向对象,前两天出来的swift才是真的面向对象。面向过程的程序是由算法+数据组成的,所以研究算法的大师级人物都是选择C的,面向过程的程序是由对象+消息组成的,更符合人的思维。面向对象不是哪一门语言,而是一种思想,理解了”封装,继承,多态“,就算初步理解了面向对象这一思想了。现在我初学OC,目的是认识就好,不求甚解,一门语言一种思想若是想真的理解 ,是要靠反复练的,见得多了,才好谈什么理解和感想。接下来写写我站在初学者的角度上对OC在大体上的认识。
         OC,全称是Object-C,就是面向对象的C。他能够向下完全兼容C语言,就是C的东西在OC里全能用,但是不能混编。并且OC的库中有很多都是C函数,OC向接入其他的接口,基本也都是C的,为了和C的函数区分,OC的变量和函数名基本都是XX打头的,比如基本语法的都是NS打头的,用户交互的一般都是UI打头的,媒体类的也不一样,而C函数一般是没有前缀的,一般公司自己写的类都是以公司的缩写打头的,个人写的类也有很多人习惯用自己名字的缩写打头,这算是OC编码的一条编码规范吧。我觉得OC入门主要学三点:①OC 的基本语法很怪,可以说很别扭,他的封装思想和别的面向对象差不多,但是语法格式跟别人大不相同。②OC的库中封装了很多类,跟其他的面向对象的语言差不多,不过他里面有个协议,对应的还有代理,是与别的面向对象不一样的,协议就是类似接口的东西,但也是有些区别的。③还有他的内存管理也跟一般的面向对象不太一样,他是采用计数器机制进行管理的,据说安全可靠,既避免了内存的浪费,也避免了野指针导致的内存泄露。
        首先是基本语法。 OC程序的入口也是main函数(swift的入口就不是main)。一般学习一门语言第一个程序都是”helloworld“,在main里用NSLog函数打印一个helloworld就算是起步了,其实这个NSLog,就是OC库中的一个C函数,因为OC的函数都不是长这个样子的。他的类呢,一般是一个.h 一个.m文件,就是一个是类的声明,一个是类的实现。h文件是对外开放的,m文件只在类内可见,这个跟其他面向对象是一样的。类的声明就是interface 实现就是implementation。声明就是在h文件里告诉别人,我有哪些成员变量,有哪些属性,有哪些方法,你能用哪些。实现就是把头文件中声明的方法的实现方法放在里面,还有一些不让别人看见的成员变量、属性和方法,这些是在类内部使用的,外部不可见不能用。在大括号内些成员变量的定义,在外边写方法的声明,属性property也是在大括号外的。在m文件中若是要定义成员变量,也是要放在大括号内的。成员变量一般是以下划线打头的,每一个属性都会去找对应的下划线打头的成员变量,没找到的话就自己创建一个。方法呢,分为类方法和对象方法,我一般叫做+方法和-方法,他的格式就是 +(返回值)变量名[:(参数类型)参数] [……]。调用的时候,+方法就是类名调用,-方法就是对象名调用。其实OC中,这不叫调用,这叫”向XX发送消息“,所以方法调用的格式就是[消息对象 消息]。这些要注意的点特别多,今天概要认识,就不细写了。
        接下来是OC的类库。OC封装了很多类,她们都有一共同的基类NSObject,我们自己定义类,也都是要继承于他的。并且,OC不支持多继承,都是单继承,不过他可以实现多个协议,用协议可以实现类似多继承的功能,但协议存在的价值主要是方法的回调,就是和代理一起合作,实现函数回调。要了解一个函数或者类的用法和定义,可以按住command单击类名或函数名,就可以进入其声明的地方,按住option点击函数名或类名,就可以看到官方文档对齐的解释,全英文的,所以如果英语不过关的话就装个词典吧,而且我们自己创建的类和方法也都是用英文单词的,英语词典是必备工具啊,个人推荐用”欧路“,挺好用。
        然后再概要说说OC的内存管理机制,ARC和MRC,一个自动一个手动管理。手动的时候只要记住四个字就行了:”黄金法则“,是啥呢,挺复杂,挺简单,以后再细说。内存管理不管对于面向对象还是面向过程都是相当难的。OC这个半自动半手动的管理就更难了,以后会写专题详解的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值