【问题标题】:What is a class constant?什么是类常量?
【发布时间】:2016-02-13 07:44:47
【问题描述】:

我被告知要声明并初始化我的类常量。我不知道它是什么,所以我搜索了谷歌,显然每个人都已经知道它是什么,没有人问过它。那么什么是类常量呢?它只是一个在整个课程中都不会改变的值吗?

【问题讨论】:

  • 大量的 Java 教程,包括 Oracle 的,都应该涵盖这一点。
  • @blm 是的,这似乎是一件基本的事情,只是在我的课堂上从未提及。然后我得到一个关于它的问题,这让我感到困惑。它是如此基本,以至于在谷歌上搜索时甚至都没有定义,哈哈。

标签: java class constants terminology


【解决方案1】:

类变量是静态的;实例变量不是。

最终变量是常数。

所以类常量会这样声明:

public class Foo {

    // Class constant 
    public static final String DEFAULT_NAME = "Bar";

    public static void main(String [] args) {
        String name = Foo.DEFAULT_NAME;
    }
}

Foo 的所有实例都相同。

【讨论】:

    【解决方案2】:

    JLS-8.3.1.1. static Fields 说(部分)

    static 字段,有时称为类变量,在类初始化时体现 (§12.4)。

    JLS-4.12.4. final Variables 说(部分)

    一个常量变量是一个基本类型的final变量或用常量表达式初始化的String类型的变量(§15.28)

    tl;博士

    总而言之,类常量就是static final 字段。

    【讨论】:

    • 如果我们在课堂上没有讨论过final,我认为可以使用public static type DEFAULT_NAME = "Bar";
    • 如果不是final,那么它就不是常量
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 2023-04-02
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多