关于Static与final的个人总结

     今天看了JAVA2入门经典的第一章,再次编写了HelloWorld这一经典的程序.  扫描完代码,我考虑为什么Static 会出现在public static void mian()中.不知道对不对,我认为main 做为静态方法出现就是告诉编译器不用创建这个HelloWorld对象就能调用main方法.
     在程序中我们经常会看到Static 方法,这些方法可以用类名直接调用而不用实例化对象.Static方法中的变量必须是静态的Static... 静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中大量的静态方法正是出于此目的而定义的。
    Static 变量和fianl变量的区别是什么一直我不太清楚的地方,今天在网上查了下,发现其实也是挺好理解的...Static 就象是C语言的 全局变量,而fianl就是C语言的 宏定义.Static 变量被所有它所在的类的对象所共有,也就是说在对象初试化的时候只会给类的Satic 变量分配一个存储空间.下边举个例子来说明:
class Value
{
  static int c=0;
  static void inc(){
    c++;
  }
}
class Count{
  public static void prt(String s){
    System.out.println(s);
  }
  public static void main(String[] args){
    Value v1,v2;
    v1=new Value();
    v2=new Value();
    prt("v1.c="+v1.c+"  v2.c="+v2.c);
    v1.inc();
    prt("v1.c="+v1.c+"  v2.c="+v2.c); 
  }
}

  结果如下:

v1.c=0  v2.c=0
v1.c=1  v2.c=1
在这里,v1.inc()方法改变了静态变量c,(v2没有改变c),可见V1,V2是共享c的.

fianl 变量就是一个在初始化后就不能再改变了,是一个定值;fianl 方法不能被继承;fianl 类是"叶子类"也不能被继承;
      

你可能感兴趣的:(关于Static与final的个人总结)