zoukankan      html  css  js  c++  java
  • final与static

    final 与 static

    • final
      • 修饰
        • 不能被继承
        • final类中的方法默认是final的
      • 修饰方法
        • 可以被继承,不能被重写
      • 修饰变量
        • 成为常量,只能赋值一次,赋值后不能改变
        • 如果变量是一个对象,只要引用不变它的属性是可以改变的
      • final不能修饰构造方法
      • 父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。
      • 当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。
    • static
      • 修饰成员变量
        • 静态变量,加载类的过程中就会为静态变量分配内存,使用类名直接引用
      • 修饰方法
        • 静态方法 不能访问所属类不带static的成员变量和成员方法
      • 修饰代码块
        • 静态代码块 位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。
    • static和final一块用
      • static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!
        • 对于变量,表示一旦给值就不可修改,并且通过类名可以访问。

        • 对于方法,表示不可覆盖,并且可以通过类名直接访问。

        • 特别要注意一个问题:

          • 对于被static和final修饰过的实例常量,实例本身不能再改变了,但对于一些容器类型(比如,ArrayList、HashMap)的实例变量,不可以改变容器变量本身,但可以修改容器中存放的对象,这一点在编程中用到很多。
  • 相关阅读:
    qt忙等与非忙等
    获得文件路径 _pgmptr, _makepath, _splitpath
    RGB2YCbCr RGB2Gray
    qt Cannot connect creator comm socket /tmp/qt_temp.S26613/stub-socket: No such
    64位Ubuntu系统安装OpenCV 2.4.x+ffmpeg 完美解决方案
    vim按下ctrl+s僵死
    win32程序应用mfc库
    error LNK2005: _DllMain@12 已经在 dllmain.obj 中定义
    JavaScript中的浅拷贝和深拷贝
    Set和Map
  • 原文地址:https://www.cnblogs.com/tonghaolang/p/7141523.html
Copyright © 2011-2022 走看看