posts - 55,comments - 89,trackbacks - 0

                   在java中聲明類的成員變量和成員方法時(shí),可以使用static關(guān)鍵字把成員聲明為靜態(tài)成員。靜態(tài)變量也叫類變量,非靜態(tài)變量叫實(shí)例變量,靜態(tài)方法也叫類方法,非靜態(tài)方法叫實(shí)例方法
                  類變量屬于整個(gè)類,一個(gè)類可以創(chuàng)建多個(gè)對(duì)象,但類的每個(gè)靜態(tài)變量在內(nèi)存中只有一份拷貝為該類的所有對(duì)象共享。類變量(類方法)不用創(chuàng)建對(duì)象就可以直接通過類名訪問。下面舉例說明類變量與實(shí)例變量的區(qū)別:
          class UseBook{
              String     name;
              float       price;
              int        count=0;   //實(shí)例變量,記錄創(chuàng)建對(duì)象的個(gè)數(shù)
              static    int     bookNumber=100;//靜態(tài)變量,書的起始編號(hào)為100
              UseBook(String n,float p){
                  name = n;
                  price = p;
                  count++;
                  bookNumber++;
              }
              void    output(){
                  prt("name: " + name + "\t" + "price: " + price + "\t");
                  prt("bookNumber: " + bookNumber + "\t" + "count: " + count + "\t") ;
              }
              public static void prt(String s){
                  System.out.print(s);
              }
              public static void main(String[] args){
                  UseBook    b1,b2,b3;
                  b1=new UseBook("java2",36.0f);
                  b1.output();
                  b2=new UseBook("c++",40.0f);
                  b2.output();
                  b3=new UseBook("vb",20.0f);
                  b3.output();     
              }
          }

          結(jié)果如下所示:
              

          name: java2            price: 36.0             bookNumber: 101    count: 1

          name: c++             price: 40.0             bookNumber: 102     count: 1

          name: vb               price: 20.0             bookNumber: 103     count: 1


          程序運(yùn)行說明:程序中定義count的目的是記錄創(chuàng)建對(duì)象的數(shù)目,但運(yùn)行結(jié)果卻不是期望的輸出。因?yàn)槊總€(gè)對(duì)象都擁有一個(gè)實(shí)例變量count,創(chuàng)建對(duì)象時(shí),對(duì)count加一的操作是對(duì)每個(gè)對(duì)象的count成員而不是對(duì)一個(gè)唯一的count操作,所以無法記錄創(chuàng)建對(duì)象的個(gè)數(shù)。而bookNumber是靜態(tài)變量,為所有對(duì)象共享,所有對(duì)象操作的是同一個(gè)bookNumber成員變量,每創(chuàng)建一個(gè)對(duì)象bookNumber值增加1,實(shí)現(xiàn)了書的自動(dòng)編號(hào)。

          posted on 2007-10-23 15:46 jiafang83 閱讀(10425) 評(píng)論(9)  編輯  收藏

          FeedBack:
          # re: java中的static關(guān)鍵字和靜態(tài)成員
          2007-10-24 10:48 | 翔南
          count是全局變量就OK啦!
          呵呵
            回復(fù)  更多評(píng)論
            
          # re: java中的static關(guān)鍵字和靜態(tài)成員
          2007-10-24 13:57 | freeman1984
          尊敬知識(shí),頂一下。  回復(fù)  更多評(píng)論
            
          # re: java中的static關(guān)鍵字和靜態(tài)成員
          2007-10-26 00:24 | 吳紅佳
          前段時(shí)間就是因?yàn)榘褞讉€(gè)變量定義為靜態(tài),結(jié)果在每個(gè)實(shí)例后靜態(tài)變量的內(nèi)容都會(huì)改變,每個(gè)實(shí)例調(diào)用的都是上個(gè)實(shí)例改變后的結(jié)果。
          害我?guī)滋於紱]找到原因  回復(fù)  更多評(píng)論
            
          # re: java中的static關(guān)鍵字和靜態(tài)成員
          2008-02-26 15:33 | qinxiang
          count改為全局變量也不行哈!一定要加上static  回復(fù)  更多評(píng)論
            
          # re: java中的static關(guān)鍵字和靜態(tài)成員[未登錄]
          2008-08-18 17:13 | june
          我還是不明白!cout的值的變化不是出現(xiàn)同類的書才會(huì)自加的嗎?  回復(fù)  更多評(píng)論
            
          # re: java中的static關(guān)鍵字和靜態(tài)成員
          2008-08-18 17:31 | jiafang
          @june
          雖然書的類型不一樣,但都是UseBook的對(duì)象,所以count還是會(huì)自加的。  回復(fù)  更多評(píng)論
            
          # re: java中的static關(guān)鍵字和靜態(tài)成員
          2008-10-01 21:11 | 小悟
          看完 我一下就清晰了 謝謝了 謝的很好  回復(fù)  更多評(píng)論
            
          # re: java中的static關(guān)鍵字和靜態(tài)成員[未登錄]
          2009-06-23 11:02 | colin
          感謝分享!  回復(fù)  更多評(píng)論
            
          # re: java中的static關(guān)鍵字和靜態(tài)成員
          2009-07-19 09:43 | 感謝人
          太好了,我一直以為JAVA 之能值傳遞,弄得我在許多工作中用了許多拙劣的方法去實(shí)現(xiàn)修改。
          原來{類}和{數(shù)組}是傳地址,實(shí)際上就是引用傳遞
          這點(diǎn)給我?guī)碓S多方便和編成思想上的解放!!
          感謝作者  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 房产| 漳州市| 洮南市| 峨眉山市| 璧山县| 鄂托克前旗| 阜宁县| 临澧县| 凤凰县| 紫阳县| 建水县| 永福县| 连州市| 临澧县| 尉氏县| 广昌县| 卢龙县| 壤塘县| 蒙城县| 朔州市| 剑川县| 垣曲县| 遂溪县| 和林格尔县| 太保市| 黄梅县| 南投县| 东阳市| 大足县| 紫云| 石门县| 威远县| 天水市| 大丰市| 崇义县| 宜黄县| 涟水县| 怀来县| 三江| 镇康县| 珠海市|