【发布时间】:2020-06-23 11:50:31
【问题描述】:
我是学习 Java 的新手,目前正在引入做 switch/case 构造。我正在阅读的书使用以下示例:
int eingabe = 256;
final byte einKleinesByte = 2;
final char einKleinerCharacter = 'c';
final short einKleinesShort = 500;
switch(eingabe) {
case einKleinesByte:
case einKleinerCharacter:
case einKleinesShort:
解释是这3个常量是在关键字final的帮助下定义的,这是必不可少的,因为变量不能用于case。
我的问题是,final byte einKleinesByte = 2; 和 byte EIN_KLEINES_BYTE = 2; 都被定义为常量有什么区别?
感谢您的帮助!
【问题讨论】:
-
如果你定义如下: byte EIN_KLEINES_BYTE = 2; - 它不是恒定的。只有关键字final才能使其保持不变
-
byte EIN_KLEINES_BYTE = 2,你的意思是static final byte EIN_KLEINES_BYTE = 2吗? -
Thinking in Java (Fourth Edition) > Java 的 final 关键字的含义根据上下文的不同而略有不同,但总的来说它表示“无法更改”。 > > 常量之所以有用有两个原因: > 1. 它可以是一个永远不会改变的编译时常量。 > 2. 它可以是在运行时初始化的值,您不想更改。