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

          jutleo
          歡迎走進(jìn)有風(fēng)的地方~~
          posts - 63,  comments - 279,  trackbacks - 0

           

          如何使用Static的變量和方法
          有時(shí)你希望定義一個(gè)類成員,使它的使用完全獨(dú)立于該類的任何對(duì)象。通常情況下,類成員必須通過它的類的對(duì)象訪問,但是可以創(chuàng)建這樣一個(gè)成員,它能夠被它自己使用,而不必引用特定的實(shí)例。在成員的聲明前面加上關(guān)鍵字static(靜態(tài)的)就能創(chuàng)建這樣的成員。如果一個(gè)成員被聲明為static,它就能夠在它的類的任何對(duì)象創(chuàng)建之前被訪問,而不必引用任何對(duì)象。你可以將方法和變量都聲明為static。
          static 成員的最常見的例子是main( ) 。因?yàn)樵诔绦蜷_始執(zhí)行時(shí)必須調(diào)用main() ,所以它被聲明為static。 
          聲明為static的變量實(shí)質(zhì)上就是全局變量。當(dāng)聲明一個(gè)對(duì)象時(shí),并不產(chǎn)生static變量的拷貝,而是該類所有的實(shí)例變量共用同一個(gè)static變量。聲明為static的方法有以下幾條限制: 
          1.它們僅能調(diào)用其他的static 方法。 
          2.它們只能訪問static數(shù)據(jù)。 
          它們不能以任何方式引用this 或super(關(guān)鍵字super 與繼承有關(guān))。 
          如果你需要通過計(jì)算來初始化你的static變量,你可以聲明一個(gè)static塊,Static 塊僅在該類被加載時(shí)執(zhí)行一次。下面的例子顯示的類有一個(gè)static方法,一些static變量,以及一個(gè)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語句被運(yùn)行。首先,a被設(shè)置為3,接著static 塊執(zhí)行(打印一條消息),最后,b被初始化為a
          *4 或12。然后調(diào)用main(),main() 調(diào)用meth() ,把值42傳遞給x。3個(gè)println ( ) 語句引用兩個(gè)static變量a和b,以及局部變量x 。 
          注意:在一個(gè)static 方法中引用任何實(shí)例變量都是非法的。 
          下面是該程序的輸出: 
          Static block initialized. 
          = 42 
          = 3 
          = 12 
          在定義它們的類的外面,
          static 方法和變量能獨(dú)立于任何對(duì)象而被使用。這樣,你只要在類的名字后面加點(diǎn)號(hào)運(yùn)算符即可。例如,如果你希望從類外面調(diào)用一個(gè)static方法,你可以使用下面通用的格式: 
          classname.method( ) 
          這里,classname 是類的名字,在該類中定義static方法??梢钥吹?,這種格式與通過對(duì)象引用變量調(diào)用非static方法的格式類似。一個(gè)static變量可以以同樣的格式來訪問——類名加點(diǎn)號(hào)運(yùn)算符。這就是Java 如何實(shí)現(xiàn)全局功能和全局變量的一個(gè)控制版本。 
          下面是一個(gè)例子。在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 凌晨風(fēng) 閱讀(3163) 評(píng)論(5)  編輯  收藏 所屬分類: Java學(xué)習(xí)筆記

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

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

          常用鏈接

          留言簿(11)

          我參與的團(tuán)隊(duì)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          收藏夾

          圍脖

          最新隨筆

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 横峰县| 崇文区| 清远市| 玉山县| 安岳县| 多伦县| 凉城县| 文登市| 福泉市| 普定县| 禹州市| 肥西县| 长丰县| 阿拉善盟| 宁蒗| 巩留县| 米易县| 石门县| 鄂托克前旗| 宝丰县| 鄂伦春自治旗| 赣州市| 工布江达县| 湖南省| 红桥区| 武隆县| 顺义区| 沂南县| 嵩明县| 改则县| 灵寿县| 双辽市| 屏南县| 罗山县| 腾冲县| 菏泽市| 芦溪县| 陆河县| 大英县| 会同县| 海林市|