• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            chenglong7997

            java 靜態(tài)數(shù)據(jù)

              前面討論的this關(guān)鍵字,典型地反映了隨著對(duì)象引用的不同,其變量和操作亦不同,體現(xiàn)了面向?qū)ο缶幊痰膬?nèi)涵。但是,有時(shí)在程序中的要求正好與此相反——需要代表整個(gè)類的數(shù)據(jù)。Java提供的靜態(tài)數(shù)據(jù)(static data)就是專門用來(lái)實(shí)現(xiàn)這一要求的。

            二、類數(shù)據(jù)
               靜態(tài)數(shù)據(jù)屬于全體對(duì)象,是所有對(duì)象共享的數(shù)據(jù),或類數(shù)據(jù)。靜態(tài)常量也稱為類常量;靜態(tài)變量也稱類變量。在解決實(shí)際問(wèn)題中經(jīng)常會(huì)遇到類數(shù)據(jù)。例如,Math.PI,Math.E對(duì)所有對(duì)象的算術(shù)運(yùn)算都是一樣的,它們被定義為Math類的靜態(tài)常量。

                再例如,稅收比率在計(jì)算稅款時(shí)對(duì)所有定義的對(duì)象都適用,也是靜態(tài)數(shù)據(jù)的典型例子。有時(shí),我們需要統(tǒng)計(jì)創(chuàng)建了多少個(gè)對(duì)象,或者有多少個(gè)對(duì)象調(diào)用了某個(gè)方法,或者應(yīng)用了某個(gè)操作等等,這需要在程序中使用靜態(tài)數(shù)據(jù)來(lái)完成這些任務(wù)。類數(shù)據(jù)可以是private或public。
            如下是定義靜態(tài)數(shù)據(jù)的典型例子。
            例1.定義靜態(tài)變量。 
            private static double accountLimit; //定義一個(gè)雙精度靜態(tài)變量 
            private static int userCount = 0; //定義一個(gè)整數(shù)靜態(tài)變量并賦值 
            public static String welcome = "Java is hot!"; //定義一個(gè)字符串靜態(tài)變量并賦值

            例2.定義靜態(tài)常量。
            private static final float TAX_RATE = 0.0875f; //定義一個(gè)浮點(diǎn)靜態(tài)常量
            public static final double EARTH_MASS = 5.972e24; //定義一個(gè)雙精度靜態(tài)常量
            public static final int MONTH_IN_YEAR = 12; //定義一個(gè)整數(shù)靜態(tài)常量
            注意 靜態(tài)常量必須在定義時(shí)賦值。否則為非法。

            如下是使用靜態(tài)數(shù)據(jù)的典型例子:

            public FutureValue() { //構(gòu)造器
              //對(duì)對(duì)象數(shù)據(jù)初始化的各語(yǔ)句
              ...
              userCount++; //每創(chuàng)建一個(gè)對(duì)象,都對(duì)原來(lái)統(tǒng)計(jì)用戶數(shù)目的靜態(tài)變量userCount加1
            }

            public FutureValue(String name) {
              this.name = name;
              //對(duì)其他各變量初始化的語(yǔ)句
              ...
              userCount++; //同上
            }

            以上例子表示無(wú)論以哪個(gè)構(gòu)造器創(chuàng)建對(duì)象,對(duì)靜態(tài)變量userCount都執(zhí)行加1,達(dá)到統(tǒng)計(jì)對(duì)象的目的。如果執(zhí)行下列輸出語(yǔ)句:

            System.out.println(myFutureValue.getUserCount()); //用對(duì)象調(diào)用

            其輸出值與:

            System.out.pritnln(FutureValue.getUserCount()); //用靜態(tài)方法通過(guò)類直接調(diào)用

            完全一樣。
            靜態(tài)數(shù)據(jù)通常由靜態(tài)方法來(lái)調(diào)用。

            三、 屬于所有對(duì)象
               靜態(tài)數(shù)據(jù)為什么屬于整個(gè)類,或類中的所有對(duì)象呢?這是因?yàn)樗鼈儽粌?chǔ)存在特殊指定的存儲(chǔ)器中。進(jìn)一步講,靜態(tài)數(shù)據(jù)儲(chǔ)存在類訪問(wèn)區(qū)的儲(chǔ)存空間。這個(gè)儲(chǔ)存空間是這個(gè)類代表的所有對(duì)象共享的,它的訪問(wèn)生命期和這個(gè)類相同。

                而實(shí)例數(shù)據(jù)分別儲(chǔ)存在代表每個(gè)對(duì)象的一段存儲(chǔ)區(qū)域中。假設(shè)我們創(chuàng)建了100個(gè)對(duì)象,那么將有100個(gè)這樣的儲(chǔ)存區(qū)域存在。即每個(gè)對(duì)象都有它自己獨(dú)立存儲(chǔ)區(qū)域,用來(lái)存儲(chǔ)它所具有的所有實(shí)例數(shù)據(jù)。這個(gè)存儲(chǔ)區(qū)域的訪問(wèn)生命期和對(duì)象相同。

            四、靜態(tài)數(shù)據(jù)原則
               靜態(tài)數(shù)據(jù)是類的組成部分,確定靜態(tài)數(shù)據(jù)首先從類的設(shè)計(jì)入手,分析和確定類的應(yīng)用范疇,它所執(zhí)行的運(yùn)算和操作,包括確定數(shù)學(xué)公式以及運(yùn)算邏輯等。由此來(lái)確定靜態(tài)數(shù)據(jù)和實(shí)例數(shù)據(jù)。靜態(tài)數(shù)據(jù)與實(shí)例數(shù)據(jù)本質(zhì)的不同在于:

            (1) 實(shí)例數(shù)據(jù)是在這個(gè)類的應(yīng)用中,每個(gè)對(duì)象,或大多數(shù)對(duì)象都具有的、但各自有不同值的數(shù)據(jù)。例如,在計(jì)算投資回報(bào)的程序中,每個(gè)對(duì)象都有姓名(name)、月投資額(monthlyInvest),年投資回報(bào)率(yearlyRate),以及投資年(years),但這些數(shù)據(jù)的值對(duì)每個(gè)對(duì)象來(lái)說(shuō),是完全由對(duì)象來(lái)確定的,與整個(gè)類無(wú)關(guān);與具體對(duì)象的形態(tài)有關(guān)。

            (2) 靜態(tài)數(shù)據(jù)是所有對(duì)象共享的數(shù)據(jù)。在這個(gè)類的應(yīng)用中,無(wú)論哪一個(gè)對(duì)象,如果應(yīng)用這個(gè)數(shù)據(jù)的話,都必須具有相同的值,或者這個(gè)數(shù)據(jù)對(duì)所有對(duì)象都有意義,或者這個(gè)數(shù)據(jù)代表了所有對(duì)象的形態(tài)表征,與整個(gè)類有關(guān)。

            根據(jù)以上分析,確定靜態(tài)數(shù)據(jù)可根據(jù)如下原則:
            1. 對(duì)類中的對(duì)象進(jìn)行統(tǒng)計(jì)的數(shù)據(jù)應(yīng)該確定為靜態(tài)數(shù)據(jù)。
            2. 對(duì)類中所有對(duì)象,設(shè)置上下限的數(shù)據(jù),應(yīng)該確定為靜態(tài)常量數(shù)據(jù)。
            3. 在執(zhí)行運(yùn)算的公式和解決問(wèn)題的邏輯中,某個(gè)常量對(duì)類中所有的對(duì)象,如果有相同應(yīng)用,這個(gè)常量應(yīng)該確定為靜態(tài)常量數(shù)據(jù)。
            4. 用來(lái)對(duì)類中所有對(duì)象進(jìn)行提示、詢問(wèn)、問(wèn)候以及其他與具體對(duì)象無(wú)關(guān)的信息或數(shù)據(jù),應(yīng)該確定為靜態(tài)常量數(shù)據(jù)。 

            posted on 2012-04-11 13:57 Snape 閱讀(270) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Java

            導(dǎo)航

            <2012年9月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            my

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            亚洲欧洲中文日韩久久AV乱码| 久久夜色精品国产欧美乱| 嫩草影院久久99| 久久国产精品免费一区二区三区| 久久av高潮av无码av喷吹| 欧洲国产伦久久久久久久| 无码人妻少妇久久中文字幕蜜桃| 高清免费久久午夜精品| 精品国产婷婷久久久| 无码日韩人妻精品久久蜜桃| 精品国产婷婷久久久| 久久狠狠高潮亚洲精品| 亚洲欧美精品一区久久中文字幕 | 2021精品国产综合久久| 久久久久婷婷| 94久久国产乱子伦精品免费| 少妇熟女久久综合网色欲| 99久久精品费精品国产| 久久国语露脸国产精品电影| 国内精品久久久久久久影视麻豆| 久久夜色精品国产欧美乱| 亚洲中文字幕伊人久久无码| 国产成人精品久久| 久久99国产综合精品| 国产精品一区二区久久精品涩爱| 91精品婷婷国产综合久久| 久久w5ww成w人免费| 久久夜色精品国产噜噜亚洲AV| 2019久久久高清456| 日韩十八禁一区二区久久| 久久九色综合九色99伊人| 久久99精品国产麻豆不卡| 国产毛片久久久久久国产毛片| 成人免费网站久久久| 国产精品久久久久无码av| 国产精品久久久久久一区二区三区| 亚洲精品乱码久久久久久蜜桃图片| 国产成人精品综合久久久| 2021国产精品久久精品| 久久99久久99精品免视看动漫| 久久久久久久波多野结衣高潮 |