Java常量和静态修饰符

标签 java static constants final modifiers

在 java 中,常量称为关键字 (final),其值永远不会改变。我见过有些人创建常量而不声明静态修饰符。我的问题是,常量是否应该声明为静态的?如果是或不是,为什么?

最佳答案

如果你在声明时给 final 变量赋值,那么它不是 static 就没有意义,因为每个实例都有自己的变量,具有相同的值值(value),这是浪费。

但是,如果您需要一个值只能设置一次的实例变量(但不同的实例可能具有不同的值),则该变量必须是 final 而不是 static.

例如:

class Person 
{
    final int id;
    public Person(int id) {
        this.id = id;
    }
}

关于Java常量和静态修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32558970/

相关文章:

Objective-C 协议(protocol)静态方法?

java - 使无副作用的方法静态化

C# 二进制常量表示

php - 数据库常量表与代码中的常量

java - 如何将数组从 Java 传递到 Ajax

java - Java中使用RocksDB执行并行写入时出现 "Failed to create lock"异常

java - 如何在 docker 镜像中的 Spring Boot 应用程序中禁用保持 Activity 状态

java - 有没有办法使用 Vaadin 8 网格在编辑模式下设置网格中的单元格

c# - C# 中的泛型和访问 T 的静态成员

javascript - 如何在 PureScript 中创建外部常量?