ios类方法和实例方法的区别和使用场景
来源:互联网 发布:笔记本win7找不到网络 编辑:程序博客网 时间:2024/06/02 01:59
区别
静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,
所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存。
静态内存是连续的,因为是在程序开始时就生成了,而实例申请的是离散的空间,所以当然没有静态方法快,
而且静态内存是有限制的,太多了程序会启动不了。
使用场景
静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,
所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存。
静态内存是连续的,因为是在程序开始时就生成了,而实例申请的是离散的空间,所以当然没有静态方法快,
而且静态内存是有限制的,太多了程序会启动不了。
使用场景
如果需要访问或者修改某个实例的成员变量时,将该方法定义成实例方法。
类方法正好相反,它不需要访问或者修改某个实例的成员变量。
类方法一般用于实现一些工具方法,比如对某个对象进行扩展,或者实现单例。
类方法一般用于实现一些工具方法,比如对某个对象进行扩展,或者实现单例。
类方法常驻内存,实例方法不是,所以类方法效率高但占内存。
类方法在堆上分配内存,实例方法在堆栈上。
事实上所有的方法都不可能在堆或者堆栈上分配内存,方法作为代码是被加载到特殊的代码内存区域,这个内存区域是不可写的。
实例方法需要先创建实例才可以调用,比较麻烦,类方法不用,比较简单。
事实上如果一个方法与他所在类型的实例无关,那么它就应该是静态的,决不会有人把它写成实例方法。所以所有的实例方法都与实例有关,既然与实例有关,那么创建实例就是必然的步骤,没有麻烦简单一说。实际上上你可以把所有的实例方法都写成静态的,将实例作为参数传入即可。
类方法,也称静态方法,指的是用static关键字修饰的方法。此方法属类本身的方法,不属于类的某一个实例(对象)。类方法中不可直接使用实例变量。其调用方式有三种:可直接调用、类名.方法名、对象名.方法名。实例方法指的是不用static关键字修饰的方法。每个实例对象都有自身的实例方法,互相独立,不共享一个。其调用方式只能是对象名.方法名。
0 0
- ios类方法和实例方法的区别和使用场景
- ios类方法和实例方法的区别和使用场景
- iOS的类方法和实例方法区别与使用
- Java内存的一点理解, 静态方法和实例方法的区别及使用场景
- 静态方法和实例方法的使用场景
- iOS 类方法和实例方法的区分和使用
- 实例方法和类方法的区别
- 类方法和实例方法的区别
- 实例方法和类方法的区别
- 类方法和实例方法的区别
- 类方法和实例方法的区别
- 实例方法和类方法的区别
- 类方法和实例方法的区别
- 类方法和实例方法的区别
- ios开发中类方法和实例方法self区别
- 类方法和类实例的区别
- 类方法和类实例的区别
- 静态方法和实例方法的区别
- CentOS下Qt安装
- 设计模式之深入了解
- 【POJ】3207 Ikki's Story IV - Panda's Trick 2-sat
- 腾讯面试中一道算法题:一个数N 的2进制表现形式中1的个数
- Hibernate Annotation (Hibernate 注解)
- ios类方法和实例方法的区别和使用场景
- android版本更新
- va_start和va_end使用详解
- LeetCode | Single Number II(单个数字II)
- cocos2d-x打开网页android与ios平台
- Error parsing XML: not well-formed (invalid token) 报错,找不出原因
- makefile——编译所有.c文件为可执行文件
- hdu1106
- 服务器处理客户端请求线程只升不降问题分析总结