前两篇文章介绍了final和static的使用,下面总结一下他们两个作用。
以下是网络上的总结,解释的很详细:
static可以修饰代码块和变量,而final可以修饰变量和类。
static 表示静态的,从始至终只获得一块内存空间。而且这块空间的资源还具有“全局性”,就是说所有的成员都可以无条件引用;
另外,static修饰的不用程序调用,只要该类被执行,static修饰的也被执行。如最常见的,Public static void main(){};又如 static int a;那么所有的成员都可以引用a。
final 表示最终的,它修饰的类不能有子类。它修饰的变量是不可变的常数,所以final的变量要立刻赋值。如:class final A {}类A就不能被别的类继承;final String a=“abc”;那么a永远只能是abc。fianl static String a=“abc”;那么a不但是一个常数,还是一个全局常数。
static如果用这个修饰你女朋友就意味着你女朋友是所有人的女朋友。
final如果用这个修饰你女朋友那就是意味着她已经变成你老婆了,你甩不掉了。只给你一次初始化机会。
为什么接口中的常量必须使用public static final修饰
public: 使接口的实现类可以使用这个常量
static:static修饰就表示它属于类的,随的类的加载而存在的,如果是非static的话,
就表示属于对象的,只有建立对象时才有它,而接口是不能建立对象的,所以
接口的常量必须定义为static
final:final修饰就是保证接口定义的常量不能被实现类去修改,如果没有final的话,
由子类随意去修改的话,接口建立这个常量就没有意义了。
最后看一个运行实例:
运行结果: