美文网首页iOS开发-面试
iOS 类方法与实力方法的区别

iOS 类方法与实力方法的区别

作者: 在下有双 | 来源:发表于2018-07-23 23:03 被阅读49次

1.区别:

(1)静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先生成实例,通过实例调用方法,静态速度很快,但是多了会占内存。
(2)静态内存是连续的,因为在程序开始时就生成了,而实例生成的是离散的空间,所以当然没有静态方法快,而且静态内存是有限制的,太多了程序会启动不了。

2.使用场景:

(1)如果需要访问或者修改某个实例的成员变量时,将该方法定义成实例方法。类方法刚好相反,它不需要访问或者修改某个实力的成员变量。
(2)类方法一般用于实现一些工具方法,比如对某个对象进行扩展,或者实现单例。
(3)类方法常驻内存,实例方法不是,所以类方法效率高但是占内存。类方法在堆上分配内存,实例方法在栈上分配内存。
(4)实例方法需要先创建实例才可以调用,比较麻烦,类方法不用比较简单。

3.注意点一:类方法

(1)类方法可以调用类方法。
(2)类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法。
(3)类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量。
(4)类方法作为消息,可以被发送到类或者对象里面去(实际上,就是可以通过类或者对象调用类方法的意思)。

4.注意点二:self的规则

(1)实例对象里的self,是对象的首地址
(2)类方法里的self,是Class。

相关文章

  • iOS 类方法与实力方法的区别

    1.区别: (1)静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要...

  • 对象方法(实例方法) 类方法(静态方法)的区别

    参考资源 Objective-C中类方法、对象方法介绍及区别iOS---类方法(静态方法)和实例方法iOS 类方法...

  • Vue混入(二)继承后方法重写

    前言 iOS开发中,子类继承父类的属性与方法时,会对父类的属性与方法进行重写;而在Vue混入的时候,可能有点区别 ...

  • iOS类方法与实例方法区别

    明确区分下两者区别:1.类方法以+号开头 对象方法以-号开头2.类方法直接 [类名 类方法名]调用 对象方法要创建...

  • iOS类方法与实例方法区别

    明确区分下两者区别: 1.类方法以+号开头 对象方法以-号开头 2.类方法直接 [类名 类方法名]调用 对象方法要...

  • 小分享

    1.静态方法与非静态方法的区别 首先,两者本质上的区别是:静态方法是在类中使用staitc修饰的方法,在类...

  • iOS load 与 initialize 的区别

    iOS中类方法 load 与 initialize (如下 Person类)

  • 基于图论数据关联方法的目标跟踪

    目标跟踪方法包括生成类方法和判别类方法。与生成类方法最大的区别是,判别类方法分类器采用机器学习,训练中用到了背景信...

  • iOS动态调用类方法

    iOS动态调用类方法(不带参数) iOS动态调用类方法(带参数) iOS动态调用类方法(有返回值) 优点 弱化连接...

  • python 高级语法

    一.Python 中类方法、类实例方法、静态方法有何区别定义区别:1.类方法和静态方法分别有专门的修饰符 @cla...

网友评论

    本文标题:iOS 类方法与实力方法的区别

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