so true

          心懷未來,開創未來!
          隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
          數據加載中……

          Java類中的限定詞

          java語言中有四種不同的限定詞,提供了四種不同的訪問權限。

            1) private
            類中限定為private的成員,只能被這個類本身訪問。
            如果一個類的構造方法聲明為private,則其它類不能生成該類的一個實例。

            2) default
            類中不加任何訪問權限限定的成員屬于缺省的(default)訪問狀態,可以被這個類本身和同一個包中的類所訪問。

            3) protected
            類中限定為protected的成員,可以被這個類本身、它的子類(包括同一個包中以及不同包中的子類)和同一個包中的所有其他的類訪問。

            4) public
            類中限定為public的成員,可以被所有的類訪問。

            表3-1列出了這些限定詞的作用范圍。

          【表3-1】 java中類的限定詞的作用范圍比較
            =============================================================
          ||              同一個類  同一個包的類 不同包的子類  不同包非子類    ||
          || private     *                                                                                              ||
          || default     *                   *                                                                         ||
          || protected *                   *                              *                                        ||
          || public      *                   *                              *                        *              ||
            =============================================================
          說明:上面這個表,看起來很簡單,而且也很容易記憶,但是卻蘊含著極為豐富的信息,可以從不同的角度來理解上面的這個表。
          比如在同一個類里面時,四個關鍵詞都相當于是public,可以不在乎限定詞是什么;在同一個包里面時,除了private限定詞外,所有的限定詞的作用都完全等同于public。我們經常會思考這樣一個問題:一個類的屬性和方法是否對外可見?這個問題描述中提到的“可見”二字,當環境為“非子類”時,說白了就是我們能否通過實例化這個類后,用一個對象把這個類的這些字段或者方法給“點”出來,即“某對象.某屬性(或某方法)”。因為通常我們都是在不同包的環境下操作的,比如我們會import很多系統的包中的類,諸如“import java.awt.*;”這樣的語句,因此我們使用這些包中的類時,它們對我們的可見也就僅僅局限在使用“public”限定詞修飾的屬性或方法上了,因此大家往往會誤以為只有public的東西才能點出來,實則不然,當我們在同一個包中的非子類中也可以把除了private修飾的東西之外的所有屬性和方法給“點”出來。其實對于“點”這個運算,可以分兩個角度去理解,既然能用到“點”操作,那就代表了我們使用的環境應該是“非子類”,非子類又可以分為“包內”和“非包內”,對于“包內”,只要不是private修飾的東西都能點出來;對于“非包內”則只能是public的東西才能點出來;;;如果是在“子類”中操作時,大家可以思考一下,我們還用“點”操作嗎?顯然不用了,因為在子類中,父類中定義的東西只要可見的話都可以被你拿過來用,因此根本就用不到點操作,當然這里也要分“包內”和“非包內”。對于default限定詞,我們不能顯示的使用它來定義屬性或方法,只要我們在定義屬性或方法的前面什么限定詞都不加,就默認的使用了default限定詞。

          posted on 2008-01-07 14:37 so true 閱讀(2373) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 扶沟县| 杂多县| 信丰县| 新泰市| 皋兰县| 昆明市| 武山县| 武义县| 江油市| 犍为县| 南靖县| 吴江市| 赤城县| 梁河县| 宝山区| 手游| 永福县| 南漳县| 星座| 珠海市| 启东市| 苍溪县| 博湖县| 衢州市| 衡阳县| 噶尔县| 岐山县| 新晃| 绥芬河市| 民丰县| 曲周县| 盐山县| 安泽县| 正蓝旗| 巴楚县| 临邑县| 民县| 衡水市| 晋宁县| 九寨沟县| 清丰县|