final 和static的使用

前两篇文章介绍了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的话,
    由子类随意去修改的话,接口建立这个常量就没有意义了。

最后看一个运行实例:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. public class Demo03 {  
  2.     public static void main(String[] args) {  
  3.         MyClass myClass1 = new MyClass();  
  4.         MyClass myClass2 = new MyClass();  
  5.         System.out.println("final声明的随机数:"+myClass1.i);  
  6.         System.out.println("static声明的随机数:"+myClass1.j);  
  7.         System.out.println("再次调用final声明的随机数:"+myClass2.i);  
  8.         System.out.println("再次调用static声明的随机数:"+myClass2.j);  
  9.     }  
  10. }  
  11. class MyClass {  
  12.     public final double i = Math.random();  
  13.     public static double j = Math.random();  
  14. }  

运行结果:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. final声明的随机数:0.9639843050925515  
  2. static声明的随机数:0.9900959701661931  
  3. 再次调用final声明的随机数:0.6144552229158678  
  4. 再次调用static声明的随机数:0.9900959701661931  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值