• <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 靜態數據

              前面討論的this關鍵字,典型地反映了隨著對象引用的不同,其變量和操作亦不同,體現了面向對象編程的內涵。但是,有時在程序中的要求正好與此相反——需要代表整個類的數據。Java提供的靜態數據(static data)就是專門用來實現這一要求的。

            二、類數據
               靜態數據屬于全體對象,是所有對象共享的數據,或類數據。靜態常量也稱為類常量;靜態變量也稱類變量。在解決實際問題中經常會遇到類數據。例如,Math.PI,Math.E對所有對象的算術運算都是一樣的,它們被定義為Math類的靜態常量。

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

            例2.定義靜態常量。
            private static final float TAX_RATE = 0.0875f; //定義一個浮點靜態常量
            public static final double EARTH_MASS = 5.972e24; //定義一個雙精度靜態常量
            public static final int MONTH_IN_YEAR = 12; //定義一個整數靜態常量
            注意 靜態常量必須在定義時賦值。否則為非法。

            如下是使用靜態數據的典型例子:

            public FutureValue() { //構造器
              //對對象數據初始化的各語句
              ...
              userCount++; //每創建一個對象,都對原來統計用戶數目的靜態變量userCount加1
            }

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

            以上例子表示無論以哪個構造器創建對象,對靜態變量userCount都執行加1,達到統計對象的目的。如果執行下列輸出語句:

            System.out.println(myFutureValue.getUserCount()); //用對象調用

            其輸出值與:

            System.out.pritnln(FutureValue.getUserCount()); //用靜態方法通過類直接調用

            完全一樣。
            靜態數據通常由靜態方法來調用。

            三、 屬于所有對象
               靜態數據為什么屬于整個類,或類中的所有對象呢?這是因為它們被儲存在特殊指定的存儲器中。進一步講,靜態數據儲存在類訪問區的儲存空間。這個儲存空間是這個類代表的所有對象共享的,它的訪問生命期和這個類相同。

                而實例數據分別儲存在代表每個對象的一段存儲區域中。假設我們創建了100個對象,那么將有100個這樣的儲存區域存在。即每個對象都有它自己獨立存儲區域,用來存儲它所具有的所有實例數據。這個存儲區域的訪問生命期和對象相同。

            四、靜態數據原則
               靜態數據是類的組成部分,確定靜態數據首先從類的設計入手,分析和確定類的應用范疇,它所執行的運算和操作,包括確定數學公式以及運算邏輯等。由此來確定靜態數據和實例數據。靜態數據與實例數據本質的不同在于:

            (1) 實例數據是在這個類的應用中,每個對象,或大多數對象都具有的、但各自有不同值的數據。例如,在計算投資回報的程序中,每個對象都有姓名(name)、月投資額(monthlyInvest),年投資回報率(yearlyRate),以及投資年(years),但這些數據的值對每個對象來說,是完全由對象來確定的,與整個類無關;與具體對象的形態有關。

            (2) 靜態數據是所有對象共享的數據。在這個類的應用中,無論哪一個對象,如果應用這個數據的話,都必須具有相同的值,或者這個數據對所有對象都有意義,或者這個數據代表了所有對象的形態表征,與整個類有關。

            根據以上分析,確定靜態數據可根據如下原則:
            1. 對類中的對象進行統計的數據應該確定為靜態數據。
            2. 對類中所有對象,設置上下限的數據,應該確定為靜態常量數據。
            3. 在執行運算的公式和解決問題的邏輯中,某個常量對類中所有的對象,如果有相同應用,這個常量應該確定為靜態常量數據。
            4. 用來對類中所有對象進行提示、詢問、問候以及其他與具體對象無關的信息或數據,應該確定為靜態常量數據。 

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

            導航

            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            統計

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            my

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            国产成人久久精品一区二区三区| 久久精品国产免费| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 伊人久久精品线影院| 久久99精品国产麻豆蜜芽| 久久亚洲中文字幕精品一区| 99久久国产精品免费一区二区| 九九99精品久久久久久| 2020国产成人久久精品| 91精品国产9l久久久久| 大香伊人久久精品一区二区| 欧美777精品久久久久网| 久久精品国产亚洲AV蜜臀色欲 | 国产V综合V亚洲欧美久久| 久久久久亚洲精品无码网址| 亚洲精品tv久久久久久久久| 久久精品国产精品亜洲毛片 | 久久久久久久91精品免费观看| 久久se精品一区二区| 国产成人精品久久| 中文成人久久久久影院免费观看| 久久国产精品一区二区| 久久精品国产色蜜蜜麻豆| 激情五月综合综合久久69| 成人久久精品一区二区三区| 久久国产免费直播| 久久99久久99精品免视看动漫| 欧美性大战久久久久久| 久久91精品综合国产首页| 久久免费高清视频| 久久久九九有精品国产| 国产精品久久一区二区三区| 久久99精品久久只有精品| 久久发布国产伦子伦精品| 狼狼综合久久久久综合网| 久久久国产精品亚洲一区| 久久99精品久久只有精品| 久久久久国产精品熟女影院 | 免费无码国产欧美久久18| 久久婷婷午色综合夜啪| 久久人人爽人人爽人人片AV高清|