Java程式設計思想之讀書筆記系列四 --- 第六章 --- 訪問許可權控制
這是Java程式設計思想之讀書筆記系列的第四篇,主要記錄了第六章訪問許可權控制的相關內容。具體內容如下:
- 面向物件設計中需要考慮的一個基本問題:如何把變動的事物與保持不變的事物區分開來
- Java提供了訪問許可權修飾詞,以供類庫開發人員向客戶端程式設計師指明哪些是可用的,哪些是不可用的
- package --> 將構件捆綁到一個內聚的類庫單元中
- 我們之所以要匯入(import),就是要提供一個管理名字空間的機制
- 靜態匯入,語法為import static com...ClassName.* --- 意思是匯入某個類裡的靜態方法。這樣,可以直接用方法名呼叫靜態方法,而不必用ClassName.方法名的方式來呼叫
- Java可執行程式是一組可以打包並壓縮為一個Java文件檔案(JAR)的.class檔案。Java直譯器負責這些檔案的查詢、裝載和解釋
- 類庫實際上是一組類檔案。其中每個檔案都有一個public類,以及任意數量的非public類。因此每個檔案都有一個勾踐。如果希望這些構件(每一個都有它們自己獨立的.java和.class檔案)從屬於同一個群組,就可以使用關鍵字package
- Java解決混亂問題的方式:
- 將一個包的所有.class檔案都置於一個目錄下,也就是利用作業系統的層次化的檔案結構來解決這一問題
- jar工具的另一種方式,後續補充
- 按照慣例,package名稱的第一部分是類的建立者的反順序的Internet域名
- Java直譯器的執行過程:P152。CLASSPATH包含一個或多個目錄,用作查詢.class檔案的根目錄。從根目錄開始,直譯器獲取包的名稱並將每個句點替換成反斜槓,以從CLASSPATH根中產生一個路徑名稱。
- 在使用jar檔案時,必須在類路徑中將jar檔案的實際名稱寫清楚,而不僅僅是指明它所在位置的目錄。CLASSPATH的設定。Java2中的JDK更聰明瞭,所以CLASSPATH設定更簡單了?CLASSPATH其實和C中的include很類似,都是指定引入檔案的目錄
- path指定命令搜尋路徑,CLASSPATH指定類搜尋路徑,JAVA_HOME指定java安裝目錄,Elipse之類的就是通過該變數找到並使用安裝好的jdk
- C中的條件編譯功能,使得程式猿不必更改任何程式程式碼,就能夠切換開關併產生不同的行為
- 包訪問許可權:只有你擁有的程式程式碼才可以訪問你所擁有的其它程式程式碼
- 訪問器(accessor)和變異器(mutator),即get/set方法
- 不要錯誤地認為Java總是將當前目錄視作是查詢行為的起點之一。如果你的CLASSPATH之中缺少一個“."作為路徑之一的話,Java就不會查詢那裡。檢查了一下,也想起來,在設定Java環境的時候,的確CLASSPATH一開始就是一個"."然後跟個";"。現在理解了
- 多執行緒環境下private使用的重要性!
- protected處理的是繼承的概念。
- default和protected:default的變數在同一個包中才能訪問,所以即使是通過繼承而不在同一個包中的子類也是無法訪問父類當中的default變數的,protected則沒有這個限制
- 是不是可以這樣理解:基類當中的所有方法都存在於其子類之中,只是能不能使用的問題(訪問許可權控制)???
- 測試 類既不可以是private也不能是protected(但是一個內部類可以是private或者protected的,這是一個特例)
- 可以將所有的構造器都指定為private,從而阻止任何人建立該類的物件,除非在該類的static成員內部建立。注意與單例模式的區分:
- 訪問許可權控制專注於類庫建立者和該類庫的外部使用者之間的關係
相關推薦
Java程式設計思想之讀書筆記系列四 --- 第六章 --- 訪問許可權控制
這是Java程式設計思想之讀書筆記系列的第四篇,主要記錄了第六章訪問許可權控制的相關內容。具體內容如下:面向物件設計中需要考慮的一個基本問題:如何把變動的事物與保持不變的事物區分開來Java提供了訪問許
Java程式設計思想之讀書筆記系列九 --- 第十一章 --- 持有物件
基本的容器類:List, Set, Queue和MapJava容器類都可以自動地調整自己的尺寸可以使用註解來抑制警告資訊:註解以“@”開頭,可以接收引數,比如 @SuppressWarnings("unchecked")表示只有有關“不受檢查的異常”的警告資訊應該被抑制容器類的尖括號括起來的是引數型別,可以有
Java程式設計思想之讀書筆記系列十一 --- 第十三章 --- 字串
String物件是不可變的,具有隻讀特性 預先指定StringBuilder的大小可以避免多次重新分配緩衝(那麼:如果超出預先指定的大小,會出現什麼情況呢?) 重寫自定義類的toString()方法
【Java程式設計思想】讀書筆記(一)第一章---第五章
Java程式設計思想(第四版)學習筆記 第一章---第五章 第一章:物件導論 1.1抽象過程 1. 2訪問控制 第二章:一切都是物件 2. 1用引用操縱物件 2. 2基本型別 第三章:操作符
《Java程式設計思想》筆記之第六章——訪問許可權控制
本文只摘錄很少一部分,作文筆記。訪問控制(或隱藏具體實現)與“最初的實現並不恰當”有關當編寫一個Java原始碼檔案時,此檔案通被稱為編譯單元(有時也被稱為轉譯單元)。每個編譯單元都必須有一個字尾名為.java,而編譯單元內測可以有一個public類,該類的名稱必須與檔名稱相同
【Java程式設計思想筆記】第六章-訪問許可權控制
要學會把變動的程式碼與保持不變的程式碼區分開來。 如果有必要,你儘可能將一切方法都定為private。 非public類在其它包中是訪問不到的。 所有預設包的類都是屬於同一個包,儘管它們在不同的資料夾下面。 private,只允許本類所有物件可訪問,其他任何類
Java程式設計思想第六章訪問許可權控制練習題解答(待更新完整.......)
練習解答 練習1 練習2 練習3 練習1 先在另一個包建立程式碼,命名為ch6Ex1.java package ch5; public class ch6Ex1 { public ch6Ex1()
《Java程式設計思想》 第六章 訪問許可權控制
第六章 訪問許可權控制 重構即重寫程式碼,以使得它更可讀、更易理解,並因此而更具可維護性。 Java提供了訪問許可權修飾詞,以供類庫開發人員向客戶端程式設計師指明哪些是可用的,哪些是不可用的。訪問許可權控制的等級,從最大許可權到最小許可權依次為:pub
《java程式設計思想——第六章(訪問許可權控制)》
訪問許可權控制 6.1包:庫單元 包內包含有一組類,它們在單一的名字空間之下被組織在了一起。 6.2訪問許可權修飾詞 包訪問許可權:當前包中所有的類都可以訪問。 public:所有的類都可以訪問。 private:自由類自己的成員可以訪問。
【學習筆記】第六章 訪問許可權控制
訪問許可權控制的作用 簡化客戶端程式設計師對於類庫檔案的理解,更便於對於該類的使用。不會觸及一些類設計者不希望他們觸及的部分。 便於類設計者更改類方法的實現(類內部的工作原理)。 6.1 包:庫單元 使用import關鍵字,匯入一個或多個類。 使
《Java程式設計思想》讀書筆記
2018.06.05 重新梳理下java基礎,熟悉的章節不記錄了。 第五章 初始化與清理 一、過載 定義:為了讓方法名相同而形參不同的構造器同時存在,即同名不同參。 區分:通過引數型別的差異。(注意:不要用返回值區分過載方法 ) 型別提升(向上提升): int —
《Java程式設計思想》讀書筆記——淺析==與equals()
我們知道,==操作符在Java中被用來判斷兩個值是否相等,但是,當我們用它來判斷兩個物件是否相等時,得到的結果卻出乎了我們的意料。 public class Test { public static void main(String[] args) {
《Java程式設計思想》讀書筆記——位運算子、邏輯運算子以及短路
我們將布林型別作為一種單位元值對待,所以它多少有些獨特。我們可以對它執行按位“與”、按位“或”、按位“異或”運算,但不能執行按位“非”。對於布林值,按位操作符具有與邏輯操作符相同的效果。 上面這段話摘自《程式設計思想》,意思就是&和|在邏輯判斷中,能
《Java程式設計思想》讀書筆記——構造器初始化順序
Java盡力保證:所有變數在使用前都能得到恰當的初始化。對於區域性變數,Java以編譯時錯誤的形式來貫徹這種保證。 public static void main(String[] args) { int i; System.out.prin
《JAVA程式設計思想》讀書筆記6——訪問許可權控制
1、private修飾詞,表示成員是私有的,只有自身可以訪問; 2、protected,表示受保護許可權,體現在繼承,即子類可以訪問父類受保護成員,同時相同包內的其他類也可以訪問protected成員。 3、無修飾詞(預設),表示包訪問許可權(friendl
《JAVA程式設計思想》讀書筆記——多型、介面
1,關於多型,物件點取域操作(成員物件)就不是多型的,因為任何域訪問操作都將由編譯器解析。 2,綜合考慮繼承,初始化的實際過程是: a,將分配給物件的空間清零 b,呼叫基類的構造器。 c,按照宣告順序,呼叫成員的初始化方法。 d,呼叫匯出類的構造器。 3,包含抽象方法的類叫
《Java程式設計思想》讀書筆記3.操作符
第3章 操作符 3.1 更簡單的列印語句 …… 3.2 使用Java操作符 基本型別 + - * / = 所有物件 = == != String類 + += 3.3 優先順序 用括號明確 3.4 賦值 基本資料型別a=b 複製值 物件c=d
《Java程式設計思想》讀書筆記2.一切都是物件
第2章 一切都是物件 2.1 用引用操縱物件 String s; //引用 String s = "asdf"; //物件 2.2 必須由你建立所有物件 String s = new String("asdf"); 儲存到什麼地方: 1) 暫
【java】《java程式設計思想》 讀書筆記
之前主要用的C++的比較多,之前花了快2個月的實際認真系統全面的學習了以下java的基礎語法,《java程式設計思想》這本書翻譯水平確實不是很好,很多話讀著會比較拗口。推薦讀之前,先去網上搜索 “java程式設計思想勘誤”,當然,有時間,最好還是直接讀英文版。 網上書評價這
《Java程式設計思想》讀書筆記——內部類(一)
內部類擁有其外圍所有(即使是私有)屬性的訪問權。 public class Outer { private String s = "hello"; private void add(){ System.out.println(s