用 static final 定义的常量,常常和C中的define定义的常量作用很相象,不过比define要好,主要指调试方面,因为define是预编译指令,没有实际的变量
定义static final时,最好把它定义在interface里,如: public interface MyData { public static final int AA = 22; public static final String BB = "Hello"; }然后,其他地方就可以使用MyData.AA和MyData.BB了
这个关键字修饰的成员都是针对于类的,
final 顾名思义就是最终的意思 , 1 对于成员变量,只初始化一次,以后再对它改变是无效的
2 对于成员方法,不可被重载 3 对于类,不能被继承
总之,static 和 final 都是针对于设计而言的 !
static final
final本身是常量,每次载入包含该成员的class时初始化一次
以后不可改变
如果载入多次class则初始化多次,
每个class持有自己的一份成员
但是因为final本身不可在运行期改变,
故多次初始化就没有意义
则将其修饰为static,
使得第一次载入该类时初始化,
以后载入同一个类就不用初始化了
public interface MyData {
public static final int AA = 22;
public static final String BB = "Hello";
}然后,其他地方就可以使用MyData.AA和MyData.BB了