Java | Static 与 final

作者: 凌川江雪 | 来源:发表于2019-03-10 05:58 被阅读4次

    Static

    #Static 定义的变量
    • 其调用:
    类名.变量名
    
    • 所有同一个类的类成员共享,共用一个;
    • 其值可以修改
    • 不能将方法体内的局部变量声明为static

    #Static 定义的方法
    • 其调用:
    类名.方法
    如 Math.pow
    
    • 所有同一个类的类成员共享,共用一个;
    • 其值可以修改
    • 静态方法不能向对象实施操作,静态方法中不可以使用this关键字;
    • 不能访问类中实例域(非static域 / 变量 / 方法),可访问类的静态域 / 变量(而且无需类名.变量名的普通调用格式):
    //demo
    class Employee
    {
      private static int nextId = 1;
      public static int getNextId()
      {
       return nextId;
      }
    }
    

    被static定义的静态域独立于Java 的堆栈,独占一个存储空间;
    static的方法在装载class得时候往往首先完成,比构造方法早,此时非static得属性和方法还没有完成初始化。
    所以不能调用。

    #Static 定义的类中程序块
    public class example{
        static{
            //some
       }
    }
    

    在该段代码被执行时,首先执行static中的程序,并且只会执行一次。




    final

    #final定义的类
    • 不能被继承;不允许其他人对这个类进行任何改动;
    • 类中所有方法都被隐式设置为final;
    • 类中的成员变量可以被定义为final或非final;

    #final定义的方法
    • 不能被重写

    #final定义的变量
    • 只能赋值一次,赋值后不能再修改;

    相关文章

      网友评论

        本文标题:Java | Static 与 final

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