最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

舉例詳解Java中的訪問(wèn)權(quán)限修飾符

 更新時(shí)間:2015年08月20日 11:06:19   作者:damotiansheng  
這篇文章主要介紹了舉例詳解Java中的訪問(wèn)權(quán)限修飾符,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

訪問(wèn)權(quán)限符:
(1)public:
對(duì)于成員來(lái)說(shuō):任何其他類都可以訪問(wèn)它們,不管在同一個(gè)包中還是在另外的包中。
對(duì)于類來(lái)說(shuō):    也是一樣。
(2)friendly:
對(duì)于成員老說(shuō):如果一個(gè)類的成員沒(méi)有任何權(quán)限修飾,那么它門就是缺省包訪問(wèn)權(quán)限,用friendly來(lái)表示,注

意friendly不是Java中的關(guān)鍵字,這里是個(gè)人喜歡的方式用它表示而已。同一個(gè)包內(nèi)其它類可以訪問(wèn),但包外

就不可以。對(duì)于同一個(gè)文件夾下的、沒(méi)有用package的classes,Java會(huì)自動(dòng)將這些classes初見(jiàn)為隸屬于該目錄

的default package,可以相互調(diào)用class中的friendly成員。如以下兩個(gè)class分別在同一個(gè)文件夾的兩個(gè)文件

中,雖然沒(méi)有引入package,但隸屬于相同的default package。

   class Sundae{
   //以下兩個(gè)方法缺省為friendly
   Sundae(){}
   Void f() {System.out.println(“Sundae.f()”);
   }
   public class IceCream{
   public static void main(String[] args){
   Sundae x = new Sundae();
   x.f();
   }
   }

對(duì)于類來(lái)說(shuō):同一個(gè)包中的類可以用??傊愔豢梢月暶鳛閜ublic或者friendly。
(3)private:
對(duì)于對(duì)于成員來(lái)說(shuō):只能在該成員隸屬于的類中訪問(wèn)。

class Sundae{
   private Sundae(){}//只能在Sundae class中被調(diào)用
   Sundae(int i) {}
   static Sundae makASundae() {
   return new Sundae();
   }
   }
   public class IceCream{
   public static void main(String[] args){
   // Sundae class中構(gòu)造函數(shù)Sundae()是private,
   // 所以不能用它進(jìn)行初始化
   //Sundae x = new Sundae();
   Sundae y = new Sundae(1);//Sundae(int)是friendly,可以在此調(diào)用
   Sundae z = Sundae.makASundae();
   }
   }

對(duì)于類來(lái)說(shuō):類不可以聲明為private。

(4)protected:
對(duì)于對(duì)于成員來(lái)說(shuō):相同包中的類可以訪問(wèn)(包訪問(wèn)權(quán)限);基類通過(guò)protected把基類中的成員的訪問(wèn)權(quán)限賦予派生類不是所有類(派生類訪問(wèn)權(quán)限)。

(5)default(默認(rèn)權(quán)限)
  類,數(shù)據(jù)成員,構(gòu)造方法,方法成員,都能夠使用默認(rèn)權(quán)限,即不寫任何關(guān)鍵字。默認(rèn)權(quán)限即同包權(quán)限,同包權(quán)限的元素只能在定義它們的類中,以及同包的類中被調(diào)用。

例子:package c05.local;

import pack1.Cookie;
//注意:在這里ChocolateChip繼承了類Cookie,按道理bite()方法也在
//ChocolateChip中,可以用x.bite直接調(diào)用,但是不可以的,因?yàn)轭怌hocolateChip
//和Cookie類不在一個(gè)包中,各自具有包訪問(wèn)權(quán)限,為了能夠使用x.bite()必須要把
//Cookie方法的訪問(wèn)權(quán)限換成public或者protected,但是一旦換成public所有的人就
//可以訪問(wèn)了,這樣達(dá)不到隱私的要求,所以設(shè)置成protected最好,既可以順利訪問(wèn),也可以
//避免外面的類調(diào)用,保護(hù)好隱私的作用
public class ChocolateChip extends Cookie {
 
  public ChocolateChip() {
   System.out.println("ChocolateChip constructor");
  }
  public static void main(String[] args) {
   ChocolateChip x = new ChocolateChip();
   x.bite(); // Can't access bite
  
  }
} ///:~
package pack1;

public class Cookie {
public Cookie()
{
System.out.println("Cookie constructor");
}

protected void bite(){System.out.println("bite");}

}


對(duì)于類來(lái)說(shuō):類不可以聲明為protected

 

對(duì)于類的權(quán)限修飾,下面有更好的解釋:

Class類的訪問(wèn)權(quán)限:
public:可以供所有的類訪問(wèn)。
默認(rèn):默認(rèn)可以稱為friendly但是,java語(yǔ)言中是沒(méi)有friendly這個(gè)修飾符的,這樣稱呼應(yīng)該是來(lái)源于c++。默認(rèn)的訪問(wèn)權(quán)限是包級(jí)訪問(wèn)權(quán)限。
         即如果寫了一個(gè)類沒(méi)有寫訪問(wèn)權(quán)限修飾符,那么就是默認(rèn)的訪問(wèn)權(quán)限,同一個(gè)包下的類都可以訪問(wèn)到,即使可以實(shí)例化該類
         (當(dāng)然如果這個(gè)類不具有實(shí)例化的能力除外,比如該類沒(méi)有提供public的構(gòu)造函數(shù))。

說(shuō)明:
       1、每個(gè)編譯單元(類文件)都僅能有一個(gè)public class
       2、public class的名稱(包含大小寫)必須和其類文件同名。
       3、一個(gè)類文件(*.java)中可以不存在public class。
        這種形式的存在的場(chǎng)景:如果我們?cè)谀硞€(gè)包內(nèi)撰寫一個(gè)class,僅僅是為了配合同包內(nèi)的其他類工作,而且
       我們不想再為了撰寫說(shuō)明文檔給客戶(不一定是現(xiàn)實(shí)意義的客戶,可能是調(diào)用這個(gè)類的類)看而傷腦筋,而且有可能過(guò)一段時(shí)間之后
       有可能會(huì)徹底改變?cè)械淖龇?,并完全舍棄舊版本,以全新的版本代替。
       4、class不可以是private和protected。
       5、如果不希望那個(gè)任何產(chǎn)生某個(gè)class的對(duì)象,可以將該類得所有構(gòu)造函數(shù)設(shè)置成private。但是即使這樣也可以生成該類的對(duì)象,就是class的static的成員(屬性和方法)可以辦到。

綜合示例:
First.java:

package Number; 
import Test.*; 
 
public class Frist extends Test 
{ 
protected String s1 = "你好"; 
public static void main( String[] args) 
{ 
String s2 = "java"; 
//System.out.println(s1); 
System.out.println(s2); 
 
Frist t = new Frist(); 
System.out.println(t.s); 
t.show(); 
return; 
} 
 
} 
 
Test.java: 
package Test; 
 
 
public class Test  
{ 
protected String s = "hello test"; //可以被同包中的類訪問(wèn)以及子類訪問(wèn),該子類可以是與包Test不同 
public void show() 
{ 
Test1 t1 = new Test1(); 
return; 
} 
 
 
} 
 
class Test1 
{ 
Test1() 
{ 
Test t = new Test(); 
System.out.println(t.s); 
} 
} 

輸出: 

java 
hello test 
hello test 

相關(guān)文章

  • Java面向?qū)ο笾^承的概念詳解

    Java面向?qū)ο笾^承的概念詳解

    這篇文章主要介紹了Java面向?qū)ο笾^承的概念詳解,Java是一種面向?qū)ο蟮木幊陶Z(yǔ)言,繼承是實(shí)現(xiàn)面向?qū)ο缶幊痰幕A(chǔ)之一。通過(guò)繼承,我們可以使代碼更具可讀性、可重用性和可維護(hù)性,從而提高程序的效率和可靠性,需要的朋友可以參考下
    2023-04-04
  • 詳解java中反射機(jī)制(含數(shù)組參數(shù))

    詳解java中反射機(jī)制(含數(shù)組參數(shù))

    這篇文章主要介紹了詳解java中反射機(jī)制(含數(shù)組參數(shù))的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • Java代碼執(zhí)行順序——類的初始化場(chǎng)景

    Java代碼執(zhí)行順序——類的初始化場(chǎng)景

    這篇文章主要為大家介紹了Java代碼執(zhí)行順序類的初始化場(chǎng)景實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 詳解Spring加載Properties配置文件的四種方式

    詳解Spring加載Properties配置文件的四種方式

    這篇文章主要介紹了詳解Spring加載Properties配置文件的四種方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • java搭建一個(gè)Socket服務(wù)器響應(yīng)多用戶訪問(wèn)

    java搭建一個(gè)Socket服務(wù)器響應(yīng)多用戶訪問(wèn)

    本篇文章主要介紹了java搭建一個(gè)Socket服務(wù)器響應(yīng)多用戶訪問(wèn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Java通過(guò)JavaMail發(fā)送郵件功能

    Java通過(guò)JavaMail發(fā)送郵件功能

    這篇文章主要為大家詳細(xì)介紹了Java通過(guò)JavaMail發(fā)送郵件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Mybatis-Plus通過(guò)SQL注入器實(shí)現(xiàn)批量插入的實(shí)踐

    Mybatis-Plus通過(guò)SQL注入器實(shí)現(xiàn)批量插入的實(shí)踐

    本文主要介紹了Mybatis-Plus通過(guò)SQL注入器實(shí)現(xiàn)批量插入的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 通過(guò)Java計(jì)算文件的MD5值實(shí)現(xiàn)方式

    通過(guò)Java計(jì)算文件的MD5值實(shí)現(xiàn)方式

    本文將詳細(xì)介紹如何使用Java語(yǔ)言來(lái)計(jì)算文件的MD5值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Spring Cloud Gateway 內(nèi)存溢出的解決方案

    Spring Cloud Gateway 內(nèi)存溢出的解決方案

    這篇文章主要介紹了Spring Cloud Gateway 內(nèi)存溢出的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring Boot如何獲取maven打包時(shí)間

    Spring Boot如何獲取maven打包時(shí)間

    這篇文章主要介紹了Spring Boot如何獲取maven打包時(shí)間,首先引入maven打包插件,本文分步驟給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2024-03-03

最新評(píng)論

黑河市| 仁布县| 津市市| 湛江市| 木里| 淮滨县| 琼结县| 彰武县| 雅江县| 边坝县| 新乐市| 金平| 军事| 新竹县| 沁水县| 平和县| 兴城市| 多伦县| 平安县| 稻城县| 常宁市| 遂昌县| 香河县| 澄城县| 凤凰县| 冷水江市| 武隆县| 通城县| 武强县| 拉萨市| 文昌市| 定襄县| 高台县| 新建县| 沙田区| 比如县| 浦东新区| 呼图壁县| 新泰市| 乌兰县| 宁国市|