<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    紅知博客

    知其然,亦知其所以然
    posts - 32, comments - 35, trackbacks - 0, articles - 0
    java訪問權限修飾符public  protected  friendly private用法總結 

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


       一 訪問權限修飾符修飾成員變量和方法
       public:表明該成員變量和方法是共有的,能在任何情況下被訪問。
      
       protected:必須在同一包中才能被訪問。(說的比較簡單,看個例子就明白了)   
           eg:class A
              {
                protected int weight ;
                protected int f( int a,int b   )  
                {
                  // 方法體
                }
               }     
           假設B與A在同一個包中,則
               class B
              {
                void g()
                {
                  A a=new A();
                  A.weight=100;//合法
                  A.f(3,4);    //合法
                 }
               }
       特別說明:什么是在同一個包中?
       答:用package打包在一起的class ,叫在同一個包中。(不明白,舉個例子)
           eg:在JDK的src\java\io中,你會看到許多java類,第一句源代碼都是package java.io;
           沒有使用package打包的,在同一目錄下的類也會被視做同一個包。
      
       friendly:在這種情況下中,同protected。區別在第二和第三種情況中。
           eg: class A
              {
                int weight ;
                int f( int a,int b   )  
                {
                  // 方法體
                }
               }     
           假設B與A在同一個包中,則
               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: 實際上,把重要的數據修飾為private,然后寫一個public的函數訪問它,正好體現了OOP的封裝特性,是OOP安全性的體現。
       

    二  訪問權限修飾符修飾類
       1,不能用protected和private修飾類。
       2,用friendly修飾的類叫友好類,在另外一個類中使用友好類創建對象時,要保證它們在同一包中。
      

    三   訪問權限修飾符與繼承
       這里的訪問修飾符指的是修飾成員變量和方法。可以分為兩種情況:
       1,子類與父類在同一包中
        此時只有聲明為private的變量與方法不能被繼承(訪問)。
       eg:
         class Father
         {
           private int money ;
           int weight=100;
          
          }
         class Son extends Father
         {
           viod f()
           {
             money=10000;//   非法
             weight=100; //   合法
            }
          }
        2,子類與父類不在同一包中
        此時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);//輸出結果是10000
               //setMoney(300);          //非法
               int number=getMoney();    //合法
               System.out.println(number);//輸出結果是10000
              }
               public  static  void main(String args[])
              {
                Son sss=new Son();
                sss.f();
               }
           }
      所以,訪問權限修飾符權限從高到低排列是public  ,protected  ,friendly, private。

    我要啦免费统计
    主站蜘蛛池模板: 国产精品网站在线观看免费传媒| 91情国产l精品国产亚洲区| 亚洲色偷偷偷综合网| 3d动漫精品啪啪一区二区免费| 中文字幕亚洲综合久久菠萝蜜 | 亚洲国产人成在线观看| 久久午夜免费鲁丝片| 亚洲精品视频在线| 91在线手机精品免费观看| 亚洲成a人片7777| 国产曰批免费视频播放免费s| 亚洲激情视频网站| 成人免费观看一区二区| 亚洲熟女综合色一区二区三区 | 香蕉视频亚洲一级| 午夜亚洲AV日韩AV无码大全| 久久精品一区二区免费看| 91亚洲精品第一综合不卡播放| 亚洲美女免费视频| 亚洲最大福利视频| 又粗又硬又大又爽免费视频播放| 男女作爱免费网站| 亚洲老妈激情一区二区三区| 99re6在线视频精品免费下载| 亚洲Av高清一区二区三区| 日韩一级视频免费观看| 成年免费a级毛片| 亚洲丁香色婷婷综合欲色啪| 99久久免费国产香蕉麻豆| 亚洲AV无码专区在线观看成人 | 在线观看免费精品国产| eeuss草民免费| 亚洲欧洲日韩不卡| 德国女人一级毛片免费| 一级A毛片免费观看久久精品 | 亚洲大成色www永久网站| av无码免费一区二区三区| 亚洲AV无码一区二区三区久久精品| 久久久久亚洲av毛片大| 99在线热视频只有精品免费| 亚洲AV无码一区二区大桥未久 |