ios 类方法 和实例方法

类方法: 也被称为静态方法,指 static关键字修饰的方法。此类方法属于类本身的方法,不属于类的某一个实例(对象)。在类方法中不可以直接使用实例变量。其调用方式有三种,可直接调用、类名、方法名、对象名。

实例方法:指的是不用static关键字修饰的方法,每个实例对象都有自身的实例方法,互相独立,不共享。其调用方式只能是对象名,方法名。

何时用静态方法,何时用类方法?
实例方法: 当你给一个类写一个方法,如果该方法需要访问某个实例的成员变量时,那么方法该被定义为实例方法。 一个类的实例通常有一些成员变量,其中含有该实例的状态信息。而该方法需要改变这些状态,那么该方法需要声明成实例方法。

类方法(静态方法):它不需要访问某个实例的成员变量,不需要改变某个实例的状态,我们把该方法定义为静态方法。

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

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

实例方法需要先创建实例才可以调用,比较麻烦,静态方法不用,比较简单。(错误)
事实上,如果一个方法不访问某实例成员变量或者不改变实例状态,那么就应该写成静态方法。

常用实例和类
第一种方式:声明实,调用实例方法
当一个类有多个实例,例如学生这个类,实例可以有学生甲乙丙丁。etc 我们就用第一种方式,在多线程的情况下,只要每个线程创建自己的实例,那么第一种方法通常是线程安全的

第二种:通过静态的实例去调用实例方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,946评论 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,618评论 0 11
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,948评论 0 62
  • 房子是来住的不是来炒的,这信息释放的信号就是我国房地产业将从“经济产业”向“民生”实质性转化迈进。让人人定有所居...
    牵着蜗牛跑步123阅读 1,153评论 0 0
  • 转眼间的我已经到了20岁,20岁对我们这个年纪的人来说意味着什么呢,是结婚生子、选择一个适合自己的工作然后就这样过...
    永哲阅读 1,558评论 0 0

友情链接更多精彩内容