国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

《Java編程思想》筆記6.訪問權(quán)限控制

wangbjun / 3283人閱讀

摘要:包命名規(guī)范使用小寫字母。包訪問權(quán)限為把類聚在一個包中的做法提供了意義和理由。接口訪問權(quán)限使用關(guān)鍵字,意味著被它修飾的成員對所有類可見。繼承訪問權(quán)限基類的創(chuàng)建者希望某些特定成員,把它的訪問權(quán)限賦予派生類也不是所有類。

點擊進入我的博客 6.1包:庫單元
import java.util.ArrayList;
import java.util.*;

當(dāng)編寫一個Java源代碼文件(編譯單元)時,每個編譯單元必須有一個后綴.java,而在編譯單元內(nèi)則可以有至多一個public類,該類名必須和文件名相同。

如果編譯單元內(nèi)還有其他的類,那么在包之外是不可見的。

6.1.1 代碼組織

當(dāng)編譯一個.java文件時,在.java文件中的每個類都會有一個輸出文件,而該輸出文件的名稱與.java文件中的每個類名稱相同,只是后綴名改為.class。

Java可運行程序是一組可以打包并壓縮為一個Java文檔文件(JAR)的.class文件,Java解釋器負責(zé)這些文件的查找、狀態(tài)和解釋。

package語句必須是文件中除注釋以外的第一句程序代碼。

Java包命名規(guī)范使用小寫字母。

packageimport關(guān)鍵字允許你做的,是將單一的全局名字空間分割開,防止名稱沖突。

6.1.2 創(chuàng)建獨一無二的包名

package名稱的第一部分是類的創(chuàng)建者的反順序域名。

package名稱分解為你機器的一個目錄。

Java解釋器的執(zhí)行過程:

找到環(huán)境變量CLASSPATH,CLASSPATH包含一個或多個目錄,用于查找.class文件的根目錄。

從根目錄開始,解釋器包的名稱并將每一個.替換成/

把CLASSPATH和包路徑拼接得到最終目錄,并查找.class文件。

Sun公司將Java2中的JDK改造的更聰明了一些,未設(shè)置CLASSPATH也可以編譯并運行Java程序。

不要錯誤的任務(wù)Java總是將當(dāng)前目錄視作查找行為的起點,CLASSPATH中的.表示當(dāng)前目錄

引入兩個名稱相同的類會引起沖突,所以盡量不要用import *的方式

6.1.3 定制工具庫

6.1.4 用import改變行為

Java沒有C的條件編譯功能,該功能可以使你不必更改任何程序代碼,就能夠切換開關(guān)并產(chǎn)生不同的行為。(Java去掉此功能可能是因為C在絕大數(shù)情況下是用此功能來解決跨平臺的問題的,即程序代碼的不同部分是根據(jù)不同的平臺來編譯的。由于Java本身可以自動跨越不同的平臺,因此這個功能對Java而言就沒有必要了。)
然而,條件編譯還有其他一些有價值的用途。調(diào)試就是一個很常見的用途。調(diào)試功能在開發(fā)過程中是開啟的,而在發(fā)布的產(chǎn)品中是禁用的。可以通過修改被導(dǎo)入的package的方法來實現(xiàn)這一目的,修改的方法是將你程序中的代碼從調(diào)試版改為發(fā)布版。這樣的技術(shù)適用于任何種類的條件代碼。

6.1.5 對使用包的忠告

包必須位于其名稱所指定的目錄中,該目錄必須是在以CLASSPATH開始的目錄中能找到的。

編譯后的代碼通常放在與源代碼不同的目錄中,必須保證JVM(在《Java編程思想》第四版中,此處被錯誤的寫成類JVN!!!)使用CLASSPATH可以找到該路徑。

6.2Java訪問權(quán)限修飾符

publicprotected包訪問權(quán)限private

取得對某成員(屬性和方法)的實現(xiàn)方法有下面四種情況:

權(quán)限設(shè)置為public。

默認(rèn)包訪問權(quán)限,在同一包中的其他類,可以訪問。

權(quán)限設(shè)置為public或者protected,通過繼承的子類可以訪問。

設(shè)置為private,提供訪問器和變異器方法(get/set)

6.2.1 包訪問權(quán)限

如果不提供訪問權(quán)限關(guān)鍵詞,則意味是“包訪問權(quán)限(也被稱作friendly)”,即默認(rèn)訪問權(quán)限。

包訪問權(quán)限:同一個包中的所有其他類對那個成員有訪問權(quán)限,包之外的無法訪問。

包訪問權(quán)限為把類聚在一個包中的做法提供了意義和理由

6.2.2 public:接口訪問權(quán)限

使用public關(guān)鍵字,意味著被它修飾的成員對所有類可見。

6.2.3 private:無法訪問

private的意思是,除了包含該成員的類外,其他任何類都無法訪問這個成員。

如果默認(rèn)構(gòu)造方法被private修飾,那么這個類無法被繼承。

6.2.4 protected:繼承訪問權(quán)限

基類的創(chuàng)建者希望某些特定成員,把它的訪問權(quán)限賦予派生類也不是所有類。

protected也提供包訪問權(quán)限

6.3 接口和實現(xiàn)

訪問權(quán)限的控制通常被稱為是具體實現(xiàn)的隱藏

封裝:把數(shù)據(jù)和方法包進類中,以及其具體實現(xiàn)的隱藏共同稱為封裝

將接口和實現(xiàn)分離

6.4 類的訪問權(quán)限

每個編譯單元最多一個public

public類名必須和文件名完全相同

編譯單元內(nèi)可以沒有public類,此時可以隨意命名文件名,但這種方法很少用。

類的訪問權(quán)限只有兩種(內(nèi)部類除外):public包訪問權(quán)限

如果不希望其他人對該類擁有訪問權(quán)限,可以把構(gòu)造器設(shè)置為private單例模式中會用這種設(shè)置。

6.5 總結(jié)
控制對成員的訪問權(quán)限有兩個原因

第一個原因:要設(shè)定客戶端程序員可以使用和不可以使用的界限。

第二個原因,也是最重要的原因,是為了讓類庫設(shè)計者可以更改類的工作方式,而不會影響對客戶端程序員產(chǎn)生重大影響。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/72177.html

相關(guān)文章

  • Java編程思想》讀書筆記-對象導(dǎo)論

    摘要:而面向?qū)ο髣t是向程序員提供表示問題空間中元素的工具,我們將問題空間中的元素及其在解空間中的表示稱為對象。為什么要把對象看作是服務(wù)提供者呢這是將問題分解為對象集合的一種合理方式。職能太多,可能會導(dǎo)致對象的內(nèi)聚性降低。在試圖將子類對象當(dāng)作其基類 計算機是頭腦延伸的工具,是一種不同類型的表達媒體。本文以背景性的和補充性的材料,介紹包括開發(fā)方法概述在內(nèi)的面向?qū)ο蟪绦蛟O(shè)計(Object-orie...

    NickZhou 評論0 收藏0
  • Java編程思想筆記10.內(nèi)部類

    摘要:但遠不止如此,內(nèi)部類了解外部類,并能與之通信。內(nèi)部類還擁有其外圍類的所有元素的訪問權(quán)。普通內(nèi)部類內(nèi)不能有域和方法。特點普通內(nèi)部類對象隱式的保存了外部類對象,但嵌套類并非如此。局部內(nèi)部類可以訪問當(dāng)前代碼塊內(nèi)的常量,以及此外圍類的成員。 點擊進入我的博客 可以把一個類的定義放在另一個類的定義內(nèi)部,這就是內(nèi)部類。Java最晦澀的部分之一。內(nèi)部類看起來就像是一種代碼隱藏機制,將類只與其他類的...

    wslongchen 評論0 收藏0
  • Java編程思想筆記9.接口

    摘要:抽象類和抽象方法抽象方法這種方法是不完整的,僅有聲明而沒有方法。創(chuàng)建抽象類和抽象方法非常有用,因為他們可以使累的抽象性明確起來,并告訴用戶和編譯器打算怎樣來使用它們。接口用于建立類于類之間的協(xié)議。與抽象類相同,防止客戶端程序員創(chuàng)建該類對象。 點擊進入我的博客 接口和內(nèi)部類為我們提供了一種將接口與實現(xiàn)分離的更加結(jié)構(gòu)化的方法。 9.1抽象類和抽象方法 抽象方法:這種方法是不完整的,僅有...

    JessYanCoding 評論0 收藏0
  • Java編程思想筆記01------一切都是對象

    摘要:一引用操縱對象在的世界里,一切都被視為對象。特點創(chuàng)建程序時,需要知道存儲在棧內(nèi)所有數(shù)據(jù)的確切生命周期,以便上下移動堆棧指針。因為,指向同一塊內(nèi)存空間除了通過對象引用靜態(tài)變量,我們還可以通過類直接引用靜態(tài)變量 一、引用操縱對象 在Java的世界里,一切都被視為對象。操縱的標(biāo)識符實際上是對象的引用, 例如:遙控器與電視的關(guān)系。 可以在沒有對象關(guān)聯(lián)的情況下,擁有一個引用。沒有電視機,也可以擁...

    yuanxin 評論0 收藏0
  • Java編程思想筆記8.多態(tài)

    摘要:多態(tài)的作用是消除類型之間的耦合關(guān)系。編寫構(gòu)造器準(zhǔn)則用盡可能簡單的方法使對象進入正常狀態(tài),如果可以的話,避免調(diào)用其他方法。 點擊進入我的博客 在面向?qū)ο蟮某绦蛟O(shè)計語言中,多態(tài)是繼數(shù)據(jù)抽象(封裝)和繼承之后的第三種基本特征。多態(tài)通過分離做什么和怎么做,從另一角度將接口和實現(xiàn)分離開來。多態(tài)的作用是消除類型之間的耦合關(guān)系。 8.1 再論向上轉(zhuǎn)型 對象既可以作為它自己的本類使用,也可以作為它的...

    chinafgj 評論0 收藏0

發(fā)表評論

0條評論

wangbjun

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<