zoukankan      html  css  js  c++  java
  • final 和 static 的区别

      final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。

      static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念

    一、final 和 staic 区别

    成员变量 (能否修改值)

      final

        final成员变量表示常量,只能被赋值一次,赋值后不能再被改变

      staic

        被static修饰的成员变量独立于该类的任何对象, static 修饰的变量可以被赋值多次

    类 (类是否可以不用初始化就访问)

      final

        final类不能被继承,没有子类,final类中的方法默认是 final 的

      static 

        static 类也不能被继承,可以不用初始化而访问

      

    方法

      final

        final 方法不能被子类的方法重写,但可以被继承

        final 不能用于修饰构造方法

        * :private 不能被子类方法覆盖,private类型的方法默认是final类型的

      static

        static 方法可以被继承,但是不能重写

        被static修饰的成员方法独立于该类的任何对象, 不依赖类特定的实例,被类的所有实例共享。

        只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。

        static方法是不在对象上执行的方法,不需要类的实例化,可以直接通过类调用

        

    二、final 和 static 一起用

    修饰成员变量

      static final用在变量上相当于一个”全局变量“,一旦初始化后就不能被修改,并且可以通过类名调用,整个类共享一个

    修饰类

      表明方法不能被子类修改(可以被继承被调用),并且可以通过类名调用

    *: static final 与 final static相同

    [1]  https://www.cnblogs.com/ggzhangxiaochao/p/10640905.html

    [2]  https://blog.csdn.net/azwhjp/article/details/107506156

    静态属性、静态方法和非静态的属性都可以被继承和隐藏而不能被重写

  • 相关阅读:
    Python使用 odbc、jdbc与 Object Relational Mapping (ORM)进行数据库开发
    Tensorflow安装
    学生作业
    大学课程推荐
    人工智能的开发工具
    android开发
    jdbc-odbc桥
    开博随记
    利用jq实现自适应边缘情况的气泡Tip
    一篇完整的FlexBox布局指南
  • 原文地址:https://www.cnblogs.com/Jomini/p/14158560.html
Copyright © 2011-2022 走看看