so true

          心懷未來(lái),開(kāi)創(chuàng)未來(lái)!
          隨筆 - 160, 文章 - 0, 評(píng)論 - 40, 引用 - 0
          數(shù)據(jù)加載中……

          Java類(lèi)中的限定詞

          java語(yǔ)言中有四種不同的限定詞,提供了四種不同的訪問(wèn)權(quán)限。

            1) private
            類(lèi)中限定為private的成員,只能被這個(gè)類(lèi)本身訪問(wèn)。
            如果一個(gè)類(lèi)的構(gòu)造方法聲明為private,則其它類(lèi)不能生成該類(lèi)的一個(gè)實(shí)例。

            2) default
            類(lèi)中不加任何訪問(wèn)權(quán)限限定的成員屬于缺省的(default)訪問(wèn)狀態(tài),可以被這個(gè)類(lèi)本身和同一個(gè)包中的類(lèi)所訪問(wèn)。

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

            4) public
            類(lèi)中限定為public的成員,可以被所有的類(lèi)訪問(wèn)。

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

          【表3-1】 java中類(lèi)的限定詞的作用范圍比較
            =============================================================
          ||              同一個(gè)類(lèi)  同一個(gè)包的類(lèi) 不同包的子類(lèi)  不同包非子類(lèi)    ||
          || private     *                                                                                              ||
          || default     *                   *                                                                         ||
          || protected *                   *                              *                                        ||
          || public      *                   *                              *                        *              ||
            =============================================================
          說(shuō)明:上面這個(gè)表,看起來(lái)很簡(jiǎn)單,而且也很容易記憶,但是卻蘊(yùn)含著極為豐富的信息,可以從不同的角度來(lái)理解上面的這個(gè)表。
          比如在同一個(gè)類(lèi)里面時(shí),四個(gè)關(guān)鍵詞都相當(dāng)于是public,可以不在乎限定詞是什么;在同一個(gè)包里面時(shí),除了private限定詞外,所有的限定詞的作用都完全等同于public。我們經(jīng)常會(huì)思考這樣一個(gè)問(wèn)題:一個(gè)類(lèi)的屬性和方法是否對(duì)外可見(jiàn)?這個(gè)問(wèn)題描述中提到的“可見(jiàn)”二字,當(dāng)環(huán)境為“非子類(lèi)”時(shí),說(shuō)白了就是我們能否通過(guò)實(shí)例化這個(gè)類(lèi)后,用一個(gè)對(duì)象把這個(gè)類(lèi)的這些字段或者方法給“點(diǎn)”出來(lái),即“某對(duì)象.某屬性(或某方法)”。因?yàn)橥ǔN覀兌际窃诓煌沫h(huán)境下操作的,比如我們會(huì)import很多系統(tǒng)的包中的類(lèi),諸如“import java.awt.*;”這樣的語(yǔ)句,因此我們使用這些包中的類(lèi)時(shí),它們對(duì)我們的可見(jiàn)也就僅僅局限在使用“public”限定詞修飾的屬性或方法上了,因此大家往往會(huì)誤以為只有public的東西才能點(diǎn)出來(lái),實(shí)則不然,當(dāng)我們?cè)谕粋€(gè)包中的非子類(lèi)中也可以把除了private修飾的東西之外的所有屬性和方法給“點(diǎn)”出來(lái)。其實(shí)對(duì)于“點(diǎn)”這個(gè)運(yùn)算,可以分兩個(gè)角度去理解,既然能用到“點(diǎn)”操作,那就代表了我們使用的環(huán)境應(yīng)該是“非子類(lèi)”,非子類(lèi)又可以分為“包內(nèi)”和“非包內(nèi)”,對(duì)于“包內(nèi)”,只要不是private修飾的東西都能點(diǎn)出來(lái);對(duì)于“非包內(nèi)”則只能是public的東西才能點(diǎn)出來(lái);;;如果是在“子類(lèi)”中操作時(shí),大家可以思考一下,我們還用“點(diǎn)”操作嗎?顯然不用了,因?yàn)樵谧宇?lèi)中,父類(lèi)中定義的東西只要可見(jiàn)的話都可以被你拿過(guò)來(lái)用,因此根本就用不到點(diǎn)操作,當(dāng)然這里也要分“包內(nèi)”和“非包內(nèi)”。對(duì)于default限定詞,我們不能顯示的使用它來(lái)定義屬性或方法,只要我們?cè)诙x屬性或方法的前面什么限定詞都不加,就默認(rèn)的使用了default限定詞。

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

          主站蜘蛛池模板: 平泉县| 永城市| 舒兰市| 江山市| 饶阳县| 武义县| 青神县| 黎平县| 于田县| 杭锦后旗| 安西县| 板桥市| 纳雍县| 龙里县| 南靖县| 山西省| 高台县| 永泰县| 车险| 翁源县| 曲沃县| 牟定县| 肇源县| 久治县| 林口县| 东方市| 天气| 柘城县| 蓬安县| 康平县| 巨野县| 定边县| 静宁县| 涿州市| 常熟市| 屏南县| 颍上县| 泰来县| 凤阳县| 红桥区| 平利县|