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)的实例变量,不可以改变容器变量本身,但可以修改容器中存放的对象,这一点在编程中用到很多。
  • 相关阅读:
    NOIP2011 D1T1 铺地毯
    NOIP2013 D1T3 货车运输 倍增LCA OR 并查集按秩合并
    POJ 2513 trie树+并查集判断无向图的欧拉路
    599. Minimum Index Sum of Two Lists
    594. Longest Harmonious Subsequence
    575. Distribute Candies
    554. Brick Wall
    535. Encode and Decode TinyURL(rand and srand)
    525. Contiguous Array
    500. Keyboard Row
  • 原文地址:https://www.cnblogs.com/tonghaolang/p/7141523.html
Copyright © 2011-2022 走看看