在JAVA中,一个类A中的常量,不能在另一个类B中的case后用A的对象调用吗?为什么?

2024-11-03 12:44:47
推荐回答(4个)
回答1:

case后面的表达式要求是常量,如果把final int MAX =10定义在B里面可以,但是定义在A里面,在B中对其进行引用就需要声明一个A的对象,这个对象是一个变量,所以a.MAX也就间接的成了一个变量,因此会报错!

回答2:

A a = new A();这句你把a初始化了。a.MAX也被初始化了。所以a.MAX就不是常量了。case语句自然要报错。你不用 A a = new A();。直接在case中调用A.MAX就可以了
void oprate() {
switch(1){
case A.MAX:
break;
}
}

回答3:

class A{
public static final int MAX = 10; //增加static 关键字 成为常量
}
class B{
int s = 10;
void oprate() {
A a = new A();
switch(s){
case A.MAX: break; //直接用
}
}
}
有分嘛

回答4:

支持楼上