日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

java訪問權(quán)限修飾符

 李副營長 2013-04-19
java訪問權(quán)限修飾符public  protected  friendly private用法總結(jié)  

     首先聲明:java中,friendly這個(gè)修飾符并沒有顯式的聲明,在成員變量和方法前什么修飾符也不用,默認(rèn)的就是friendly。 
    為了條理清晰,分三種不同情況來總結(jié)。 

   一 訪問權(quán)限修飾符修飾成員變量和方法 
   public:表明該成員變量和方法是共有的,能在任何情況下被訪問。 
   
   protected:必須在同一包中才能被訪問。(說的比較簡單,看個(gè)例子就明白了)    
       eg:class A 
          { 
            protected int weight ; 
            protected int f( int a,int b   )   
            { 
              // 方法體 
            } 
           }      
       假設(shè)B與A在同一個(gè)包中,則 
           class B 
          { 
            void g() 
            { 
              A a=new A(); 
              A.weight=100;//合法 
              A.f(3,4);    //合法 
             } 
           } 
   特別說明:什么是在同一個(gè)包中? 
   答:用package打包在一起的class ,叫在同一個(gè)包中。(不明白,舉個(gè)例子) 
       eg:在JDK的src\java\io中,你會(huì)看到許多java類,第一句源代碼都是package java.io; 
       沒有使用package打包的,在同一目錄下的類也會(huì)被視做同一個(gè)包。 
   
   friendly:在這種情況下中,同protected。區(qū)別在第二和第三種情況中。 
       eg: class A 
          { 
            int weight ; 
            int f( int a,int b   )   
            { 
              // 方法體 
            } 
           }      
       假設(shè)B與A在同一個(gè)包中,則 
           class B 
          { 
            void g() 
            { 
              A a=new A(); 
              A.weight=100;//合法 
              A.f(3,4);    //合法 
             } 
           } 
    private: 只能在本類中訪問。 
             eg:    class   Test 
                    {  
                       private int money; 
                       Test() 
                       { 
                          money=2000; 
                       } 
                       private int getMoney() 
                       { 
                         return money; 
                        } 
                     public  static  void main(String args[]) 
                     { 
                         Test te=new  Test(); 
                         te.money=3000;             //合法 
                         int m=te.getMoney();       //合法 
                         System.out.println("money="+m); 
                      } 
                     } 
                   
   PS: 實(shí)際上,把重要的數(shù)據(jù)修飾為private,然后寫一個(gè)public的函數(shù)訪問它,正好體現(xiàn)了OOP的封裝特性,是OOP安全性的體現(xiàn)。 
    

二  訪問權(quán)限修飾符修飾類 
   1,不能用protected和private修飾類。 
   2,用friendly修飾的類叫友好類,在另外一個(gè)類中使用友好類創(chuàng)建對象時(shí),要保證它們在同一包中。 
   

三   訪問權(quán)限修飾符與繼承 
   這里的訪問修飾符指的是修飾成員變量和方法。可以分為兩種情況: 
   1,子類與父類在同一包中 
    此時(shí)只有聲明為private的變量與方法不能被繼承(訪問)。 
   eg: 
     class Father 
     { 
       private int money ; 
       int weight=100; 
       
      } 
     class Son extends Father 
     { 
       viod f() 
       { 
         money=10000;//   非法 
         weight=100; //   合法 
        } 
      } 
    2,子類與父類不在同一包中 
    此時(shí)private與friendly均不能被繼承(訪問), protected與public可以。 
     eg: 
       Father.java 

      package com.aaa 
      public class Father 
     { 
       int height ; 
       protected  int money=120; 
       public int weight; 
       protected int getMoney() 
       { 
         return money; 
       } 
       void setMoney(int newMoney) 
       { 
         money=newMoney; 
       } 
      } 
     
      Son.java 
      package com.bbb 
      import com.aaa.Father; 
      public class Son extends Father 
      { 
         void f() 
         { 
           money=10000;//合法 
           //height=170;//非法,height為friendly修飾的變量 
           System.out.println(money);//輸出結(jié)果是10000 
           //setMoney(300);          //非法 
           int number=getMoney();    //合法 
           System.out.println(number);//輸出結(jié)果是10000 
          } 
           public  static  void main(String args[]) 
          { 
            Son sss=new Son(); 
            sss.f(); 
           } 
       } 
  所以,訪問權(quán)限修飾符權(quán)限從高到低排列是public  ,protected  ,friendly, private。 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多