开发者

Java中的static和final关键字的使用详解

开发者 https://www.devze.com 2024-01-14 10:19 出处:网络 作者: 好奇的7号
目录一. static1.static静态变量2.static静态类方法二. final1.final的作用2.final型变KJrQRDMEe量三. final与static一起使用一. static
目录
  • 一. static
    • 1.static静态变量
    • 2.static静态类方法
  • 二. final
    • 1.final的作用
    • 2.final型变KJrQRDMEe
  • 三. final与static一起使用

    一. static

    1.static静态变量

    对于类中的变量,如果声明为static型:

    Java中的static和final关键字的使用详解

    其特点是:此变量KJrQRDMEe会被这个类的所有对象所共享,这些对象都可以调用、改变它的值。

    2.static静态类方法

    当方法名前有static,即为static方法,可以方便我们无需创建对象也可以调用此方法。

    采用:

    类名.method();//来调用即可

    特点:静态方法比较拉,只可以访问 静态的 属性/变量/方法,无法访问非静态的这些属性/变量/方法

    Java中的static和final关键字的使用详解

    相对的,非静态方法啥都能访问(静态和非静态的属性/变量/方法,都可以。

    二. final

    1.final的作用

    final类不可被继承,final方法不可被重写(但可以被继承),final属性不可被外部更改。

    (很好理解,final就是最终的意思嘛)

    2.final型变量

    必须!初始化

    Java中的static和final关键字的使用详解

    也很好理解,final变量没法更改值,要是一开始不定义好,那不就没办法获得值了。

    三. final与static一起使用

    我们知道,static代码块在加载类的时候就会启动,而构造器要在创建类的对象才会启动。www.devze.com

    所以如果当final类型是static类型的变量时,只能在 定义中 或者 静态代码块中 初始化。

    因为如果是在构造器中初始化,可能出现的情况是,php虽然加载类的时候有了final变量,但是没有创建对象,那么就没有初始化final变量,这是不可以的。

    另外:

    class BBB{
        public final static int sbb = 250;
        static {
            System.out.println("static method 编程has been activated!");//不会输出这一行
        }
    }

    若直接调用:

    BBB.sbb;

    当直接调用sbb这个final static类,不会导致类的加载,所以不会输出static代码块的内容。

    到此这篇关于Java中的static和final关键字的使用详解的文章就介绍到这了,更多相关static和final关键字内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号