Posted on 2006-05-31 22:58
hays(海納百川) 閱讀(691)
評論(4) 編輯 收藏
???? 今天看了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 類是"葉子類"也不能被繼承;
??????