1,与c++ java不同,oc语法是不支持类的静态变量的。
类方法就是类的静态方法,直接使用类名调用,类方法中是不能访问类的成员变量的。因为静态方法是不能够操作成员变量的。
问:静态方法为什么不能访问成员变量:
答:这个问题很简单啊
你想啊
例如类有一个成员变量a
这个类可以实例化很多对象
每个对象都有自己独立的a空间
通过静态方法去访问a的空间
它怎么知道要访问那个对象的a
一个成员a总不能指向内存中所有这个类对象的a吧
还有,因为成员变量是类的实例的属性,静态方法直接用类名调用,既然类实例都没有,那么静态方法修改的是哪个实例的属性呢?
2,c++中静态方法的使用
使用规则
我们在使用时要注意:
静态方法既可以用实例来调用,也可以用类名来调用。
在objective-c中只能使用类名来调用。