hays

海纳百川
posts - 25, comments - 48, trackbacks - 0, articles - 0
  BlogJava :: 首页 ::  :: 联系 :: 聚合  :: 管理
     今天看了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 类是"叶子类"也不能被继承;
      


评论

# re: 关于Static与final的个人总结  回复  更多评论   

2006-06-01 00:05 by temp
Static 就象是C语言的全局变量,而fianl就是C语言的预处理
===========================================
final就是C语言的预处理这个说的不对,final是用来定义一些程序中使用的常量值,而你所说的“C语言的预处理”是什么概念》???

# re: 关于Static与final的个人总结  回复  更多评论   

2006-06-01 07:42 by vandalor(海纳百川)
感谢Temp指正我的错误,fianl应该是C语言中的宏定义.十分感谢了

# re: 关于Static与final的个人总结  回复  更多评论   

2006-06-01 12:57 by geniefox
对于static,乃至整个java,应该从面向对象来考虑,不用拘泥于c++的类比性,另外,对于static静态变量,不是一定要用static静态方法来访问,(当然上面针对语法来说是对的),再有,写好value类中的函数、变量的访问权限。

# re: 关于Static与final的个人总结  回复  更多评论   

2006-11-09 21:33 by zxmn
我想问一下main(String[] args)里面的(String[] args)是什么意思??????????

只有注册用户登录后才能发表评论。


网站导航: