天天看點

java基礎---通路權限控制

1.進行通路權限控制的原因:

(1)是防止使用者接觸那些他們不應碰的工具。對于資料類型的内部機制,那些工具是必需的。但它們并不屬于使用者接口的一部分,使用者不必用它來解決自己的特定問題。是以将方法和字段變成“私有”(private)後,可極大友善使用者。因為他們能輕易看出哪些對于自己來說是最重要的,以及哪些是自己需要忽略的。這樣便簡化了使用者對一個類的了解。

(2)允許庫設計者改變類的内部工作機制,同時不必擔心它會對客戶程式員産生什麼影響。最開始的時候,可用一種方法建構一個類,後來發現需要重新建構代碼,以便達到更快的速度。如接口和實施細節早已進行了明确的分隔與保護,就可以輕松地達到自己的目的,不要求使用者改寫他們的代碼。

通路權限控制專注:類庫建立者和該類庫外部使用者之間的關系,這種關系也是一種通信方式。

2.類的通路權限修飾(2種)

預設通路權限(包通路權限):用來修飾類的話,表示該類隻對同一個包中的其他類可見。

public:用來修飾類的話,表示該類對其他所有的類都可見。

注意:不可将類設成private(那樣會使除類之外的其他類都不能通路它),也不能設成protected。

特例:Java 内部類既可以是protected,也可以是private。

3.類的成員與方法的權限修飾(4種)

預設通路權限(包通路權限):如果一個類的方法或變量被包通路權限修飾,也就意味着隻能在同一個包中的其他類中顯示地調用該類的方法或者變量,在不同包中的類中不能顯示地調用該類的方法或變量。

private(你無法通路):如果一個類的方法或者變量被private修飾,那麼這個類的方法或者變量隻能在該類本身中被通路,在類外以及其他類中都不能顯示地進行通路。

protected(繼承通路權限):如果一個類的方法或者變量被protected修飾,對于同一個包的類,這個類的方法或變量是可以被通路的。對于不同包的類,隻有繼承于該類的類才可以通路到該類的方法或者變量。

public(接口通路權限):被public修飾的方法或者變量,在任何地方都是可見的。

Java包和類檔案的知識:

1)Java中的包主要是為了防止類檔案命名沖突以及友善進行代碼組織和管理;

2)對于一個Java源代碼檔案,如果存在public類的話,隻能有一個public類,且此時源代碼檔案的名稱必須和public類的名稱完全相同,另外,如果還存在其他類,這些類在包外是不可見的。如果源代碼檔案沒有public類,則源代碼檔案的名稱可以随意命名。

什麼是封裝?

封裝(Encapsulation)是面向對象方法的重要原則,就是把對象的屬性和操作(或服務)結合為一個獨立的整體,并盡可能隐藏對象的内部實作細節。封裝是把方法和資料包圍起來,對資料的通路隻能通過已定義的接口。封裝是一種資訊隐藏技術,在java中通過關鍵字private實作封裝。封裝定義程式如何引用對象的資料,封裝實際上使用方法将類的資料隐藏起來,控制使用者對類的修改和通路資料的程度。

封裝的作用:

① 對象的資料封裝特性徹底消除了傳統結構方法中資料與操作分離所帶來的種種問題,提高了程式的可複用性和可維護性,降低了程式員保持資料與操作内容的負擔。

②對象的資料封裝特性還可以把對象的私有資料和公共資料分離開,保護了私有資料,減少了可能的子產品間幹擾,達到降低程式複雜性、提高可控性的目的。

參考來源:淺析Java中的通路權限控制   百度百科:java的封裝