美文网首页
变量Variable介绍:2-静态变量static

变量Variable介绍:2-静态变量static

作者: 赵亦晨 | 来源:发表于2016-10-17 17:35 被阅读0次

在Objective-C中,在变量声明前加上关键字static,该变量就成为静态变量。静态变量的作用可以使局部变量保留多次调用同一个方法所取得的值。静态变量只在程序开始执行时初始化一次,在不指定静态变量的值时,默认情况下,静态变量的初始值为0,并且多次调用方法时,保存这些数值。

1、在方法之内定义静态变量

可以在方法中定义静态变量,此时,只能在该方法中使用定义的静态变量。

如下所示的方法中,静态变量staticValue只能在printStaticVariable中使用,并且staticValue的初始值为0。

-(void)printStaticVariable{

staticintstaticValue;

NSLog(@"staticVar Value: %d",staticValue);

staticValue++;

}

当在main()中多次调用printStaticVariable方法时,staticValue的值会累加。如下所示:

#import

#import "MyClass.h"

intmain(intargc,constchar*argv[]){

@autoreleasepool{

MyClass*myClass=[[MyClassalloc]init];

[myClass printStaticVariable];

[myClass printStaticVariable];

[myClass printStaticVariable];

}

return0;

}

运行结果如下:

2、在方法之外定义静态变量

可以在方法之外定义静态变量,此时,该类的所有方法都可以访问该静态变量。

如下所示,在@implementation之外定义一个静态变量staticValue2,并赋初始值100。在该类的printAndIncreaseStaticValue方法中,打印当前staticValue2的值,并且对staticValue2执行加1操作。

#import "MyClass.h"

staticintstaticValue2=100;

@interfaceMyClass()

@end

@implementationMyClass

-(void)printAndIncreaseStaticVarValue{

NSLog(@"staticVar Value: %d",staticValue2);

staticValue2++;

}

@end

在main()函数中,多次调用printAndIncreaseStaticVarValue方法;

#import

#import "MyClass.h"

intmain(intargc,constchar*argv[]){

@autoreleasepool{

MyClass*myClass=[[MyClassalloc]init];

[myClass printAndIncreaseStaticVarValue];

[myClass printAndIncreaseStaticVarValue];

[myClass printAndIncreaseStaticVarValue];

}

return0;

}

运行结果如下:

3、静态变量的重要特性

静态变量在开发中有2个重要特性需要注意:

某个对象调用不同的方法,修改同一个静态变量,则该静态变量的值是累加的;

当同一个类的不同对象,修改同一个静态变量时,则该静态变量的值也是累加的。

示例代码:

在main()函数中,再创建一个MyClass对象,并调用printAndIncreaseStaticVarValue方法,可以验证,此时静态变量staticValue2的值也是叠加的。

#import

#import "MyClass.h"

intmain(intargc,constchar*argv[]){

@autoreleasepool{

MyClass*myClass=[[MyClassalloc]init];

[myClass printAndIncreaseStaticVarValue];

[myClass printAndIncreaseStaticVarValue];

[myClass printAndIncreaseStaticVarValue];

MyClass*myclass1=[[MyClassalloc]init];

[myclass1 printAndIncreaseStaticVarValue];

[myclass1 printAndIncreaseStaticVarValue];

[myclass1 printAndIncreaseStaticVarValue];

}

return0;

}

运行结果:

相关文章

  • 变量Variable介绍:2-静态变量static

    在Objective-C中,在变量声明前加上关键字static,该变量就成为静态变量。静态变量的作用可以使局部变量...

  • Python中的静态变量

    什么是静态变量? 静态变量(Static Variable)在计算机编程领域指在程序执行前系统就为之静态分配(也即...

  • java随笔

    static变量和static方法 static变量 1.static修饰的变量:静态变量,静态变量在内存中只有一...

  • JAVA——static修饰符解惑及使用

    1. static的作用 static可以修饰变量,被static修饰的变量叫做静态变量,程序运行时静态变量存放在...

  • 关于JAVA中的static变量/方法/代码块

    静态变量   在类成员变量中可以分为静态变量(也叫类变量, 有static修饰)和实例变量(没有static修饰)...

  • Java中的静态内部类

    一:静态内部类 使用static修饰的变量是静态变量,使用static 修饰的方法是静态方法,静态变量和静态方法都...

  • static关键字

    static的作用0.static可以修饰变量,被static修饰的变量叫做静态变量,程序运行时静态变量存放在方法...

  • static有什么用途

    在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数。 static 属于静态变量,使用它...

  • static的作用

    在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数。static属于静态变量,使用它修饰...

  • JAVA基础之static

    1、static变量 按照是否静态的对类成员变量进行分类可分两种: 被static修饰的变量,叫静态变量或类变量,...

网友评论

      本文标题:变量Variable介绍:2-静态变量static

      本文链接:https://www.haomeiwen.com/subject/ohhzyttx.html