博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS---类方法(静态方法)和实例方法
阅读量:5745 次
发布时间:2019-06-18

本文共 873 字,大约阅读时间需要 2 分钟。

类方法  
实例方法是以+开头的方法, 实例方法是用实例对象访问;
 
类方法的对象是类而不是实例,通常用来创建对象或者工具类。
 
 
在实例方法里,根据继承原理发送消息给self和super其实都是发送给self
 
 
在类方法里面self是其他的类的类方法,在类方法中给self发送消息只能发给类方法self或者是类super 
 
 
什么时候用类方法,要创建一个实例时候获取一个共享实例,或者获取关于类的一些共有信息

 

1.实例方法/动态方法

    a).标识符:-

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

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

2.静态方法/类方法

    a).标识符:+

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

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

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

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

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

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

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

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

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

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

 

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

 

 
 

转载于:https://www.cnblogs.com/LifeTechnologySupporter/p/5257124.html

你可能感兴趣的文章
手机APP关于资源热更新的问题
查看>>
你还在手动发布代码吗?累不?
查看>>
基本类型包装类及编译器优化(常量池)
查看>>
那些值得你去细细研究的Drawable适配
查看>>
ARouter解析二:页面跳转源码分析
查看>>
Java中@SuppressWarnings的使用
查看>>
两万字谈谈如何使用 Scrum 框架进行敏捷开发
查看>>
useragent收集
查看>>
terminal/cmd/命令行设置代理
查看>>
objective-c入门
查看>>
利用阿里云免费证书建立https站点
查看>>
IE6浮动元素呈现貌似天梯一样的效果
查看>>
Redis学习笔记10--Redis主从复制
查看>>
webpack配置
查看>>
sublimetext2中的PackageControl
查看>>
linux C之alarm函数
查看>>
mysql innodb 和 myisam 的区别与选择
查看>>
源码解析---IntentService
查看>>
power cmd 使用技巧
查看>>
Play 内置模板标签(1.2.3版本)
查看>>