static在oc中的使用

来源:互联网 发布:不知为不知是知也的知 编辑:程序博客网 时间:2024/05/21 00:17

1,与c++ java不同,oc语法是不支持类的静态变量的。

类方法就是类的静态方法,直接使用类名调用,类方法中是不能访问类的成员变量的。因为静态方法是不能够操作成员变量的。


问:静态方法为什么不能访问成员变量:

答:这个问题很简单啊

你想啊

例如类有一个成员变量a

这个类可以实例化很多对象

每个对象都有自己独立的a空间

通过静态方法去访问a的空间

它怎么知道要访问那个对象的a

一个成员a总不能指向内存中所有这个类对象的a吧


还有,因为成员变量是类的实例的属性,静态方法直接用类名调用,既然类实例都没有,那么静态方法修改的是哪个实例的属性呢?


2,c++中静态方法的使用

使用规则

我们在使用时要注意:
静态方法只能访问类的静态成员,不能访问类的非静态成员;
非静态方法可以访问类的静态成员,也可以访问类的非静态成员,也就是访问所有成员变量。
静态方法既可以用实例来调用,也可以用类名来调用。在objective-c中只能使用类名来调用。

原创粉丝点击