美文网首页
oc编程思想

oc编程思想

作者: KKLinJJ | 来源:发表于2017-07-24 10:40 被阅读51次

面向对象概念

面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算是一种计算机编程范式, 它将对象作为问题空间的基本元素, 利用对象和对象之间的相互作用来设计程序.

对象的概念

面向对象思想把整个世界看成由各种对象来组成的. 这些对象具有属性和行为, OC中称之为属性和方法. 从最简单的整数到复杂的飞机等均可看作对象, 它不仅能表示具体的事物, 还能表示抽象的规则, 计划或事件.

类的概念

面向对象思想的中, 具体的事物是对象, 具有相同或相似性质的对象的抽象或者说描述就是类. 因此, 对象的抽象是类, 类的具体化就是对象, 也可以说类的实例是对象.

元类的概念

对象的抽象是类, 类的抽象又是什么呢?

前文提到OC是在C的基础上, 赋予了面向对象的能力. OC和其他的面向对象语言有一点区别, 它有元类的概念. OC中的’类’, 它的抽象叫做元类(meta class). 我们可以认为元类的具体化的对象就是类.
元类的结构定义如下:

struct objc_class {
    Class isa;
    Class super_class;
    const char *name;
    long version;
    long info;
    long instance_size;
    struct objc_ivar_list *ivars;
    struct objc_method_list **methodLists;
    struct objc_cache *cache;
    struct objc_protocol_list *protocols;

} OBJC2_UNAVAILABLE;

类也有自己的属性: 比如, name是类的名字, 这里是IPhone6. 对象的属性则是在ivars里, 这里姑且先让我用属性来称呼. methodLists是类的方法列表, 就手机的类的来说, 他的methodLists里就有call这个方法.

类也是一个具体的对象, 正因为OC是这样实现OOP的, 我们可以修改这个对象的属性的值, 从而实现一些特殊的用途.

我们可以动态的添加一个方法.

比如最早用功能机的时候是不可以安装app的, 我用的iPhone6是智能手机, 可以给他安装一个APP, 这样就可以干一些原本不能干的事情.
还可以通过swizzle技术交换2个方法的实现. 从而做出AOP编程.

类与对象的实质,参考文档:
http://southpeak.github.io/2014/10/25/objective-c-runtime-1/
http://www.jianshu.com/p/001b296688ec
https://juejin.im/entry/587d887f1b69e60058486a71

相关文章

  • oc编程思想

    面向对象概念 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一...

  • 常用第三方

    1.编程框架 1:基于响应式编程思想的oc。地址:https://github.com/ReactiveCocoa...

  • 2018年6月26日【python学习笔记】

    类 1.编程思想: 面向过程编程:C语言(只有逻辑和过程) 面向对象编程:Java、c++、oc、python等(...

  • 总纲

    一句代码创建常用UI控件类与对象OC中面向对象的编程思想OC基础语法复习OC中的协议OC中的block学习导航栏按...

  • ios比较实用的小demo

    1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/Reactiv...

  • 常用的iOS第三方资源

    1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/Reacti...

  • 一些有用的第三方(转)

    1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/Reacti...

  • OC中常用的第三方框架

    转载自CSDN 1. 编程框架 1:基于响应式编程思想的oc地址:https://github.com/React...

  • OC--链式编程思想

    1.block 基本使用是控制器之间的通讯使用。2.block 高级使用则是,作为链式编程来使用, Masonry...

  • iOS项目中常用第三方库

    常用第三方 1. 编程框架 1:基于响应式编程思想的oc 地址:https://github.com/Reacti...

网友评论

      本文标题:oc编程思想

      本文链接:https://www.haomeiwen.com/subject/ojpfkxtx.html