???? 今天看了JAVA2入門經(jīng)典的第一章,再次編寫了HelloWorld這一經(jīng)典的程序.? 掃描完代碼,我考慮為什么Static 會(huì)出現(xiàn)在public static void mian()中.不知道對(duì)不對(duì),我認(rèn)為main 做為靜態(tài)方法出現(xiàn)就是告訴編譯器不用創(chuàng)建這個(gè)HelloWorld對(duì)象就能調(diào)用main方法.
??? ?在程序中我們經(jīng)常會(huì)看到Static 方法,這些方法可以用類名直接調(diào)用而不用實(shí)例化對(duì)象.Static方法中的變量必須是靜態(tài)的Static...?靜態(tài)方法常常為應(yīng)用程序中的其它類提供一些實(shí)用工具所用,在Java的類庫(kù)中大量的靜態(tài)方法正是出于此目的而定義的。
????Static 變量和fianl變量的區(qū)別是什么一直我不太清楚的地方,今天在網(wǎng)上查了下,發(fā)現(xiàn)其實(shí)也是挺好理解的...Static 就象是C語言的全局變量,而fianl就是C語言的宏定義.Static 變量被所有它所在的類的對(duì)象所共有,也就是說在對(duì)象初試化的時(shí)候只會(huì)給類的Satic 變量分配一個(gè)存儲(chǔ)空間.下邊舉個(gè)例子來說明:
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);?
? }
}
??? ?在程序中我們經(jīng)常會(huì)看到Static 方法,這些方法可以用類名直接調(diào)用而不用實(shí)例化對(duì)象.Static方法中的變量必須是靜態(tài)的Static...?靜態(tài)方法常常為應(yīng)用程序中的其它類提供一些實(shí)用工具所用,在Java的類庫(kù)中大量的靜態(tài)方法正是出于此目的而定義的。
????Static 變量和fianl變量的區(qū)別是什么一直我不太清楚的地方,今天在網(wǎng)上查了下,發(fā)現(xiàn)其實(shí)也是挺好理解的...Static 就象是C語言的全局變量,而fianl就是C語言的宏定義.Static 變量被所有它所在的類的對(duì)象所共有,也就是說在對(duì)象初試化的時(shí)候只會(huì)給類的Satic 變量分配一個(gè)存儲(chǔ)空間.下邊舉個(gè)例子來說明:
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);?
? }
}
結(jié)果如下:
v1.c=0? v2.c=0
v1.c=1? v2.c=1
在這里,v1.inc()方法改變了靜態(tài)變量c,(v2沒有改變c),可見V1,V2是共享c的.
fianl 變量就是一個(gè)在初始化后就不能再改變了,是一個(gè)定值;fianl 方法不能被繼承;fianl 類是"葉子類"也不能被繼承;
??????