資源描述:
《淺析Java中的訪問權限控制 - Java開發(fā) Java經驗 技巧.doc》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、淺析Java屮的訪問權限控制?編程開發(fā)技術淺析Java中的訪問權限控制原文出處:海子今天我們來一起了解一下Jewei語言屮的訪問權限控制。在討論訪問權限控制之前,先來討論一下為何需要訪問權限控制??紤]兩個場景:場景1:工程師A編寫了一個類ClassA,但是工程師A并不希望ClassA被該應用屮其他所用的類都訪問到,那么該如何處理?場景2:如果工程師A編寫了一個類ClassA,其屮有兩個方法funl>fun2,工程師只想讓funl對外可見,也就是說,如果別的工程師來調用ClassA,只可以調用方法funl,那么該怎么處理?此時,訪問權限控制便可以起到作用了。在Java中,提供了四種訪問
2、權限控制:默認訪問權限(包訪問權限),public,private以及protected。注意,」:述四種訪問權限,只有默認訪問權限和public能夠用來修飾類。修飾類的變量和方法四種權限都可以。(本處所說的類針對的是外部類,不包括內部類)下面就分別針對修飾類和修飾類的成員來講述這四種訪問權限控制。1.修飾類默認訪問權限(包訪問權限):用來修飾類的話,表示該類只對同i個包屮的其他類可見。public:用來修飾類的話,表示該類對其他所有的類都可見。下面通過幾個例子來看一下兩者的區(qū)別:例1:Main.java:packagecom.exh.testl;publicclassMain{/*
3、**@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubPeoplepeople=newPeople("Tom");System,out.printin(people.getName());}}People,javapackagecom.exh.test1;classPeople{//默認訪問權限(包訪問權限)privateStringname=null;publicPeople(Stringname){this4、turnname;}publicvoidsetName(Stringname){this.name二name;}}從代碼可以看出,修飾People類采用的是默認訪問權限,而由于People類和Main類在同一個包屮,因此People類對于Main類是可見的。程序運行結果:靈問題旦控制臺五LogCat止〉Main(3)[JavaC:ProgramFilesJavajre6binjavaw.eTom例子2:People,javapackagecom.exh.test2;classPeople{//默認訪問權限(包訪問權限)privateStringname=null;publi
5、cPeople(Stringname){this6、s110*/11publicstaticvoidmain(String[]args){$12//TODOAuto-generatedmethodstub13314Peoplepeople■newPeg^Je(tfTomM);15System.out.printin(people?getName());16}1717}提示Peolple類在Main類屮不可視。從這里就可以看出,如果用默認訪問權限去修飾一個類,該類只對同一個包屮的其他類可見,對于不同包小的類是不可見的。正如上圖的快速修正提示所示,將People類的默認訪間權限更改為public的話,People類對于Main類便可見了。
7、2.修飾類的方法和變量默認訪問權限(包訪問權限):如果一個類的方法或變量被包訪問權限修飾,也就意味著只能在同一個包屮的其他類屮顯示地調用該類的方法或者變量,在不同包屮的類屮不能顯示地調用該類的方法或變量。private:如果一個類的方法或者變量被private修飾,那么這個類的方法或者變量只能在該類本身屮被訪問,在類外以及其他類111都不能顯示地進行訪問。protected:/(II果一個類的方法或者變量被protected修飾,對于同一個色的類,這個類的