• <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国产欧美久久久精品蜜芽| 99久久99久久精品国产片果冻| 超级97碰碰碰碰久久久久最新| 国产一区二区三区久久精品| 亚洲欧洲久久久精品| 97精品伊人久久大香线蕉app| 亚洲欧洲中文日韩久久AV乱码| 国产精品九九九久久九九| 亚洲日本va午夜中文字幕久久| 国产V亚洲V天堂无码久久久| 亚洲精品国产第一综合99久久| 777久久精品一区二区三区无码 | 99久久精品国产一区二区| 中文国产成人精品久久不卡| 久久久久久久亚洲精品| 久久精品国产亚洲网站| 日韩乱码人妻无码中文字幕久久| 久久婷婷人人澡人人| 国产成人久久精品麻豆一区| .精品久久久麻豆国产精品| 一本色道久久99一综合| 久久人人爽人人爽人人爽| 无码任你躁久久久久久| 久久久久国产精品嫩草影院| 久久精品成人免费观看97| 国产精品综合久久第一页| 久久―日本道色综合久久| 久久国产精品99精品国产987| 精品无码久久久久国产| 国产精品视频久久| 国产精品gz久久久| 久久久久免费视频| 久久久高清免费视频|