在java中,final关键字前还需要static吗?为什么?

2025-05-21 13:35:14
推荐回答(3个)
回答(1):

需不需要加就看你的需求了,在你没加static 关键字的时候,你可以不用实例化类就能调用该成员属性 比如:A类里面有个属性 public final static int a = 5;你在B类里面调用可以直接 :int i = A.a; 如果 你没加static ,那就需要这样做: A aa = new A(); int i = aa.a;

回答(2):

final与static final的区别是:final在一个对象类唯一,static final在多个对象中都唯一,如果作为常量用的话,只是final的话就得在别的类引用的时候要创建对象,会占用不必要的空间,而加上static的话在编译的时候占用一个空间,其他时候就不会再占用空间了。所以常量一般用static修饰,其他时候看你自己的需要

回答(3):

  这个是java基本功了

  1. final

    1. 修饰类,那么这个类不能被继承;

    2. 修饰方法,那么这个方法不能被override;

    3. 修饰属性,那么这个属性值不能被修改;

  2. static

    1. 表示为静态成员(方法、属性);

    2. 静态成员与非静态成员的区别:

      1. 静态成员在对象创建之前就存在,调用方式 类.方法、类.属性;

      2. 非晶态成员,必须在创建对象之后才能使用,调用方式 对象.方法、对象.属性


所以,final 和 static 没有必要一起组合使用,这个主要看具体的功能要求。