在C++中,可以用构造函数的参数表初始化对象的常量成员,如此常量成员的值可在运行时指定,Java中能实现同样的功能么?
Java中好像在进入构造函数前,常量成员就已经初始化了,若是这样的话,似乎很难实现在运行时指定常量值,我能想到办法是在对象构造利用类成员存储参数值,对象构造时利用类成员初始化常量成员.
Java中好像在进入构造函数前,常量成员就已经初始化了,若是这样的话,似乎很难实现在运行时指定常量值,我能想到办法是在对象构造利用类成员存储参数值,对象构造时利用类成员初始化常量成员.
不过也可以 在static块里面赋值class InitFinal {
final int i ;
final int j ;
static final int kk;
static {
kk = 9;
}
public InitFinal(int m , int n) {
i = m ;
j = n ;
}
}
看看这个类就清楚了
由于JAVA没有全局变量这个定义,所以一般都用static final定义常量,你的理解是正确的。
至于为了节省资源而声明为static,我认为是瞎说。