通常,最终静态成员,特别是变量(或静态最后,当然,它们可以以任意顺序使用,而不会重叠含义)广泛用于Java中的接口以定义实现类的协议行为,这意味着实现(继承)接口的类必须包含该接口的所有成员。Java中静态变量和最终静态变量之间的区别
我无法一个最终和最终静态成员之间进行区分。最终的静态成员是一个静态成员,声明为final或其他东西?在哪些特定情况下应该特别使用它们?
静态变量或最终静态变量永远不能在静态方法内或实例方法内部的方法内声明。为什么?
相应的以下段代码将不会被编译,编译器会发出编译时错误,如果试图编译它。
public static void main(String args[])
{
final int a=0; //ok
int b=1; //ok
static int c=2; //wrong
final static int x=0; //wrong
}
'static'字段只能属于一个Class,因此编译器错误。 'final'意味着变量在第一次初始化后永远不能被改变。 – brc
@EJP啊,也许我错了。没关系! – bdonlan
@bdonlan事实上,接口变量在Effective Java中被提及为反模式。 –