仔细理解iOS成员变量和实例变量以及类方法和实例方法

首先来区别一下 实例变量、成员变量的区别:

【iOS开发日记-2014.6.20】成员变量、实例变量、属性之间的关系

可以看到在接口 @interface 括号里面的统称为”成员变量”,实例变量是成员变量中的一种!

实例的英文翻译为Instance(manifestation of a class) 说的是“类的表现”,说明实例变量应该是由类定义的变量!
除去基本数据类型int float ....等,其他类型的变量都叫做实例变量。//说的很到位

总的来说,**实例变量+基本数据类型变量=成员变量**
实例变量加上基本数据类型变量也就是 类的成员变量;
类定义的类型变量 就是 实例变量; 所有基本类型的都是成员变量。 成员变量范围比实例变量范围大太多了;



接下来说说 类方法和实例方法 ,类方法简单的来说,就是静态方法,类名直接是可以调用的,实例方法是必须要构建对象之后,用对象来调用的;

1、类方法是属于整个类,而不属于某个对象。 
2、类方法只能访问类成员变量,不能访问实例变量,而实例方法可以访问类成员变量和实例变量。 
3、类方法的调用可以通过 类名.类方法和对象.类方法(2种方式,但是第二种少见), 而实例方法只能通过对象.实例方法访问。(看吧,创建了对象多好啊,啥类型方法都可以调)
4,类方法只能访问类方法,而实例方法可以访问类方法和实例方法。 

5, 类方法可以调用类方法,类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法。
二、类方法在堆上分配内存,实例方法在堆栈上

1,实例方法里面的self,是对象的首地址。
2,类方法里面的self,是Class.
尽管在同一个类里面的使用self,但是self却有着不同的解读。在类方法里面的self,可以翻译成class self;在实例方法里面的self,应该被翻译成为object self。在类方法里面的self和实例方法里面的self有着本质上的不同,尽管他们的名字都叫self。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值