在JAVA中,一个类A中的常量,不能在另一个类B中的case后用A的对象调用吗?为什么?
classA{finalintMAX=10;}classB{ints=10;voidoprate(){Aa=newA();switch(s){casea.MAX:brea...
class A{ final int MAX = 10;}class B{ int s = 10; void oprate() { A a = new A(); switch(s){ case a.MAX: break; } }}//----------------------------case a.MAX这条语句会出错,
展开
4个回答
展开全部
case后面的表达式要求是常量,如果把final int MAX =10定义在B里面可以,但是定义在A里面,在B中对其进行引用就需要声明一个A的对象,这个对象是一个变量,所以a.MAX也就间接的成了一个变量,因此会报错!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
}
void oprate() {
switch(1){
case A.MAX:
break;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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; //直接用
}
}
}
有分嘛
public static final int MAX = 10; //增加static 关键字 成为常量
}
class B{
int s = 10;
void oprate() {
A a = new A();
switch(s){
case A.MAX: break; //直接用
}
}
}
有分嘛
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
支持楼上
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询