• static 关键字 静态成员变量及静态成员函数


    static类成员

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

    使用类的 static 成员的优点

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

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

    static变量与局部变量的区别

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

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

    static成员函数

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

    没有this指针的存在。

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

  • 相关阅读:
    SpringBoot之OAuth2.0学习之客户端快速上手
    SpringBoot之oauth2.0学习之服务端配置快速上手
    基于Docker+Prometheus+Grafana监控SpringBoot健康信息
    SpringBoot+kafka+ELK分布式日志收集
    springmvc的异步处理
    WebFlux基础之响应式编程
    Webflux快速入门
    深入理解Spring的ImportSelector接口
    深入理解Spring的异步机制
    SpringSecurity学习之自定义过滤器
  • 原文地址:https://www.cnblogs.com/zhousong918/p/10578584.html
Copyright © 2020-2023  润新知