zoukankan      html  css  js  c++  java
  • static 关键字 静态成员变量及静态成员函数

    static类成员

    类成员类似于C语言的全局变量,但是与全局变量又有所不同,例如,全局变量是可以被任何的用户代码所修改,而且全局变量破坏了对象的封装性。

    使用类的 static 成员的优点

    使用 static 成员而不是全局对象有三个优点。
    1. static 成员的名字是在类的作用域中,因此可以避免与其他类的成员或
    全局对象名字冲突。
    2. 可以实施封装。static 成员可以是私有成员,而全局对象不可以。
    3. 通过阅读程序容易看出 static 成员是与特定类关联的。 这种可见性可清
    晰地显示程序员的意图。

    4.存储在全局(静态)数据分配区

    static变量与局部变量的区别

    (1)该变量在全局数据区分配内存(局部变量在栈区分配内存);
    (2)静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化(局部变量每次函数调用都会被初始化);
    (3)静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0(局部变量不会被初始化);
    (4)它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,也就是不能在函数体外面使用它(局部变量在栈区,在函数结束后立即释放内存);

    静态全局变量不能被其它文件所用(全局变量可以);
    其它文件中可以定义相同名字的变量,不会发生冲突(自然了,因为static隔离了文件,其它文件使用相同的名字的变量,也跟它没关系了);

    static成员函数

    在外部定义时,无需添加static关键字。

    没有this指针的存在。

    只能调用静态成员变量和函数。

  • 相关阅读:
    maven(一 基本操作 命令 标签)
    springmvc学习(五)
    springmvc学习(四)
    springmvc学习(三)
    springmvc学习(二)
    一个简单的springmvc例子 入门(1)
    第一次记录
    字符设备驱动(六)按键poll机制
    字符设备驱动(五)按键优化休眠
    字符设备驱动(四)按键中断
  • 原文地址:https://www.cnblogs.com/zhousong918/p/10578584.html
Copyright © 2011-2022 走看看