var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-20738293-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script')"/>

          jutleo
          歡迎走進有風的地方~~
          posts - 63,  comments - 279,  trackbacks - 0

           

          如何使用Static的變量和方法
          有時你希望定義一個類成員,使它的使用完全獨立于該類的任何對象。通常情況下,類成員必須通過它的類的對象訪問,但是可以創建這樣一個成員,它能夠被它自己使用,而不必引用特定的實例。在成員的聲明前面加上關鍵字static(靜態的)就能創建這樣的成員。如果一個成員被聲明為static,它就能夠在它的類的任何對象創建之前被訪問,而不必引用任何對象。你可以將方法和變量都聲明為static。
          static 成員的最常見的例子是main( ) 。因為在程序開始執行時必須調用main() ,所以它被聲明為static。 
          聲明為static的變量實質上就是全局變量。當聲明一個對象時,并不產生static變量的拷貝,而是該類所有的實例變量共用同一個static變量。聲明為static的方法有以下幾條限制: 
          1.它們僅能調用其他的static 方法。 
          2.它們只能訪問static數據。 
          它們不能以任何方式引用this 或super(關鍵字super 與繼承有關)。 
          如果你需要通過計算來初始化你的static變量,你可以聲明一個static塊,Static 塊僅在該類被加載時執行一次。下面的例子顯示的類有一個static方法,一些static變量,以及一個static 初始化塊: 
          // Demonstrate static variables,methods,and blocks. 
          class UseStatic {
          static int a = 3
          static int b; 
          static void meth(int x) 
          System.out.println(
          "x = " + x);
          System.out.println(
          "a = " + a);
          System.out.println(
          "b = " + b);
          }

          static 
          System.out.println(
          "Static block initialized.");
          = a * 4
          }
           
          public static void main(String args[]) 
          meth(
          42);
          }

          }

          一旦UseStatic 類被裝載,所有的static語句被運行。首先,a被設置為3,接著static 塊執行(打印一條消息),最后,b被初始化為a
          *4 或12。然后調用main(),main() 調用meth() ,把值42傳遞給x。3個println ( ) 語句引用兩個static變量a和b,以及局部變量x 。 
          注意:在一個static 方法中引用任何實例變量都是非法的。 
          下面是該程序的輸出: 
          Static block initialized. 
          = 42 
          = 3 
          = 12 
          在定義它們的類的外面,
          static 方法和變量能獨立于任何對象而被使用。這樣,你只要在類的名字后面加點號運算符即可。例如,如果你希望從類外面調用一個static方法,你可以使用下面通用的格式: 
          classname.method( ) 
          這里,classname 是類的名字,在該類中定義static方法。可以看到,這種格式與通過對象引用變量調用非static方法的格式類似。一個static變量可以以同樣的格式來訪問——類名加點號運算符。這就是Java 如何實現全局功能和全局變量的一個控制版本。 
          下面是一個例子。在main() 中,static方法callme() 和static 變量b在它們的類之外被訪問。
          class StaticDemo {
          static int a = 42
          static int b = 99;
          static void callme() 
          System.out.println(
          "a = " + a);
          }

          }
           
          class StaticByName {
          public static void main(String args[]) 
          StaticDemo.callme();
          System.out.println(
          "b = " + StaticDemo.b);
          }

          }

          下面是該程序的輸出: 
          = 42 
          = 99


          posted on 2007-12-01 10:55 凌晨風 閱讀(3163) 評論(5)  編輯  收藏 所屬分類: Java學習筆記

          FeedBack:
          # re: 如何使用Static的變量和方法
          2008-04-07 20:24 | jacky_0223
          明白了~ 呵呵~  回復  更多評論
            
          # re: 如何使用Static的變量和方法
          2008-06-18 17:34 | 謝謝
          說的很明白 很透徹  回復  更多評論
            
          # re: 如何使用Static的變量和方法
          2008-09-22 10:52 | ww
          xiexie
            回復  更多評論
            
          # re: 如何使用Static的變量和方法
          2008-09-27 15:35 | ss
          很明白,理解的不錯  回復  更多評論
            
          # re: 如何使用Static的變量和方法[未登錄]
          2009-05-08 23:10 | l
          3Q  回復  更多評論
            

          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(11)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          收藏夾

          圍脖

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 嘉义县| 富宁县| 鸡泽县| 滦平县| 昌江| 闵行区| 北安市| 江达县| 延川县| 西昌市| 罗田县| 泽州县| 清徐县| 阿拉善右旗| 南漳县| 锦州市| 青神县| 台中县| 东方市| 兴海县| 天台县| 烟台市| 巴塘县| 中西区| 芷江| 营口市| 拜泉县| 汉源县| 荥经县| 宁夏| 卢龙县| 岳西县| 滦平县| 正定县| 苏尼特右旗| 邯郸市| 阜新| 南城县| 来安县| 平利县| 浦县|