iOS—静态方法(类方法)和实例方法

摘要:
1.实例方法/动态方法a)。标识符:(实例对象函数)c)。实例方法位于堆栈上。2.静态方法/类方法a)。标识符:3。静态方法和实例方法之间的区别a)。静态方法驻留在内存中。静态方法和实例方法是相同的,并且在首次使用类型时加载。b) 静态方法在堆上分配内存,实例方法在堆栈上。事实上,所有方法都不能在堆或堆栈上分配内存。作为代码,方法被加载到特殊的代码存储区域。

1.实例方法/动态方法

    a).标识符:-

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

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

2.静态方法/类方法

    a).标识符:+

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

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

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

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

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

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

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

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

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

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

注:下面的就是用的类方法,特点:首字母大写,实例方法往往首字母小写

 

iOS—静态方法(类方法)和实例方法第1张

免责声明:文章转载自《iOS—静态方法(类方法)和实例方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python脚本收集腾讯云CDN日志,并入ELK日志分析GDB调试器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ASP.NET MVC5开发记录

Request 和 Request.form 和 Request.QueryString 的区别: (参考:https://www.cnblogs.com/tianguook/p/3592531.html) Request.Form["key"] 获取对应key的value值,用于POST过来的数据,不限制数据大小 Request.QueryString[...

单片机加密方法

                          单片机加密方法   在最近一个项目中,急急忙忙把功能完成就给了客户,完全没有安全意识,现在用烧录器把Flash里的程序一读,我就慌了,完全没有加密,随随便便就把程序读出来了,那我干了一个月的活,被人家花几秒钟读出来了,我这不是白干吗。因此,在这里普及一下安全意思,顺便介绍几种常见的加密方法。 一、打磨或更...

17.可选链

  可选链式调用是一种可以在当前值可能为nil的可选值上请求和调用属性、方法及下标的方法。如果可选值有值,那么调用就会成功;如果可选值是nil,那么调用将返回nil。多个调用可以连接在一起形成一个调用链,如果其中任何一个节点为nil,整个调用链都会失败,即返回nil。   Swift 的可选链式调用和 Objective-C 中向nil发送消息有些相像,但...

SqlServer Alwayson 搭建排错记录(二)

  下面记录下建立好alwayson可用性组后,向可用性组内添加数据库出现过的问题及解决方法 一、数据库未处于恢复状态   将数据库联接到可用性组的时候报错: 数据库“XXXX”未处于恢复状态,而此状态是镜像数据库或辅助数据库所必需的。必须使用 WITH NORECOVERY 还原远程数据库。 (Microsoft SQL Server,错误: 1464)...

Java多线程2

线程的生命周期 与人有生老病死一样,线程也同样要经历开始(等待)、运行、挂起和停止四种不同的状态。这四种状态都可以通过Thread类中的方法进行控制。下面给出了Thread类中和这四种状态相关的方法。 1 // 开始线程 2 public void start( ); 3 public void run( ); 4 5 // 挂...

Python协程

协程本质上就是一个线程,不过它是协作式的非抢占式的程序,面向的是IO操作。python有GIL的限制,不能充分利用多线程的实现高并发。进程和线程都是通过cpu的调度实现不同任务的有序执行,协程则要在写代码的时候确定执行顺序。由于协程在一个线程中,所以协程不能阻塞。 优缺点: 无需线程上下文切换的开销 在一个线程中,不需要加锁 无法利用多核资源:协程的本质...