從訪問許可權的大小可以由大到小排列為public,protected,包訪問許可權,以private.
包訪問許可權
,即預設訪問許可權,沒有任何關鍵字,又是也表示friendly。在乙個包中,如果乙個物件前面沒有任何許可權修飾符的話,就預設為包許可權修飾符。包預設許可權的範圍是包內的任意乙個類中都可以使用這個物件,但是對於不包含這個物件的包來說這個物件就是private.是不允許訪問的。例如下面的**。
package friendly
public
class
test
}
在這段**中cook方法沒有任何許可權修飾詞,也就是該方法是包訪問許可權,從而使得只有friendly包中的物件在能夠訪問該方法,而包外的物件是不能訪問該方法的,無論是包外的類繼承了該類,也還是不能訪問的。
包訪問許可權的意義在於當你把乙個類放進該包中也就是說這個類和包中其他成員都是可以互相訪問的
public
使用了public關鍵字表示該關鍵字修飾的物件對於任何人都是可以用的,這個無論是在包內還是在包外都可已訪問,只要到時候匯入某個包即可。
類的訪問許可權
在乙個類檔案中,只能有 乙個public型別的類。這表示每個編譯單元都有單一的公共介面,用public來表現。該介面可以包含眾多支援包訪問許可權的類。
public型別的類名必須與檔名相一致,同時類既不可以是private也不可以是protected的.
private
型別是私有型別類,用該修飾符修飾的物件只能在定義該物件的類中使用,在類外就不可以使用了。主要用於實現不想被其他類訪問的物件。它的用法主要在於多執行緒程式設計,也可以用來私有化類的構造器,避免不必要的構造。
下面是乙個單例模式的構造:
public
class
soup;
//構造乙個類的例項,
private
static soup soup=new soup();//這一行首先通過預設構造器建立了乙個物件;同時這個物件是靜態的說明了這個無論建立多少個類的物件,該物件都只有乙個;第三這個物件是私有的,只能在這個類中被呼叫。
//這個方法是該類中唯一的乙個public方法,說明其他類訪問該類的物件時只能通過該方法
//這個方法的返回值是soup,這也就說明了這個方法返回乙個soup物件的引用,其他類想要建立soup物件的話,只能通過這個類。
//這個方法返回的是上面的靜態的soup物件,這一點很重要,說明無論呼叫多少次這個方法,返回的都是乙個物件,即上面創造的靜態物件soup。
public soup access()
}
上面的**說明了soup類只能創造乙個物件,這就是單例模式的一種實現。
在該類中使用private修飾符修飾類構造器,是的其他類中不能建立該類的物件。
如果soup物件是public的話,其他類中也可以通過類名訪問這個靜態變數,但是同時無論如何也是乙個物件。
protected
修飾詞。這個修飾詞修飾的物件只能在包含該對像的類的子類中被訪問到。下面有個例子:
package access.dessert
public
class
cookie
import access.desseert
public
class
chip
extends
cookie
}
將cookie類修改一下則可以呼叫bite方法了。
package access.dessert
public
class
cookie
}
Java訪問許可權修飾詞
public 介面訪問許可權 使用關鍵字public,就意味著public修飾的成員宣告自己對每個人都是可以訪問的。private 你無法訪問 private關鍵字的意思是,除了包含該成員的類之外,其它任何類都無法訪問這個成員 protected 繼承訪問許可權 protected修飾的成員,對於繼...
java的訪問許可權和修飾詞
訪問許可權控制的修飾詞 private,protected,public,預設的 default 1 修飾類時 外部類 可以使用public和預設的 內部類 可以使用public,protected,預設的,private 2 修飾成員變數 四個都可以進行修飾 可見性不一樣 本類中 同包下 不同包子...
訪問許可權控制 訪問修飾詞
四個訪問修飾詞 public protected,private,和預設 1.public訪問修飾詞定義的方法屬性等是公共的,所有的包,類都可以呼叫 2.預設的修飾符表示同包的檔案可以訪問,不同包其他的都不能訪問 3.private表示私有的,只有在定義的本類中自己訪問,物件導向的思想就是 屬性都定...