动态方法/实例方法

作者: 失忆的程序员 | 来源:发表于2017-06-10 08:46 被阅读1次

动态方法/实例方法

1).标识符:— 类开头

2).调用方式:(实例对象    函数)

3).实例方法在堆栈上。

静态方法/类方法

1).标识符:+ 类开头

2).调用方式:(类    函数)

3).静态方法在堆上分配内存。

静态方法和实例方法的区分

1).静态方法常驻内存,实例方法不是,所以静态方法效率高但占内存。事实上,方法都是一样的,在加载时机和占用内存上,静态方法和实例方法是一样的,在类型第一次被使用时加载。调用的速度基本上没有差别。

2).静态方法在堆上分配内存,实例方法在堆栈上。事实上所有的方法都不可能在堆或者堆栈上分配内存,方法作为代码是被加载到特殊的代码内存区域,这个区域是不可写的。

3).实例方法需要先创建实例才可以调用,比较麻烦,静态方法不用,比较简单。

4).静态方法是静态绑定到子类,不是被继承。

5).一般使用频繁的方法用静态方法,用的少的方法用动态的。静态的速度快,占内存。动态的速度相对慢些,但调用完后,立即释放类,可以节省内存,可以根据自己的需要选择是用动态方法还是静态方法。

6).静态方法修改的是类的状态,而对象修改的是各个对象的状态。

7).类的实例调用是在类的生命周期中存在,当类没有了以后,对应的实例也就没有了,对应的方法也就没有了。静态类不然,只要你引用了那个静态类的命名空间,它就会一直存在,直到我们推出系统。

使用场景

1.如果需要访问或者修改某个实例的成员变量时,将该方法定义成实例方法。

2.类方法正好相反,它不需要访问或者修改某个实例的成员变量。

3.类方法一般用于实现一些工具方法,比如对某个对象进行扩展,或者实现单例。

相关文章

  • 使用__slots__实现动态绑定

    Python作为动态语言,可以实现动态绑定属性和实例方法等。 动态绑定属性 动态绑定实例方法 给一个实例绑定的方法...

  • java为什么静态方法只能调用静态方法

    因为静态方法是属于类的,动态方法属于实例对象,动态方法只有在对象实例化之后才存在, 如果静态方法能调用动态方法的话...

  • runtime学习系列之方法调用

    苹果开源网站官方文档 在Objective-C里面,方法分为实例方法和动态方法,但是不管是实例方法还是动态方法,最...

  • iOS-类方法与实例方法

    搬运自 动态方法/实例方法 静态方法/类方法 静态方法和实例方法的区分 使用场景

  • IOS中类方法和实例方法

    动态方法/实例方法 1).标识符:- 类开头2).调用方式:(实例对象 函数)3).实例方法在堆栈上。 静态方法...

  • iOS中类方法和实例方法

    1.实例方法 (动态方法)标识符 :- 开头调用方式:实例对象 + 函数实例方法存储在堆栈上 2.类方法(静态方法...

  • 动态方法/实例方法

    动态方法/实例方法 1).标识符:— 类开头 2).调用方式:(实例对象 函数) 3).实例方法在堆栈上。 静态...

  • Python动态绑定属性方法

    python是动态语言,可以为实例动态绑定属性、方法,也可以为类动态绑定方法。即在用到的时候定义。为实例动态绑定的...

  • Python:面向对象编程(进阶)

    类动态绑定方法与限定实例属性 类动态绑定方法 前面我们说了如何给类动态的添加属性,那么如何动态绑定方法呢?如下示例...

  • #8 面向对象高级编程,python内部属性方法

    一.实例绑定方法和给类绑定方法 由于python动态语言的特性,在创建类之后,可以给实例或类再绑定方法。给实例绑定...

网友评论

    本文标题:动态方法/实例方法

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