JAVA的public,private,protected存取權限

來源:互聯網
上載者:User

       Java中的存取權限有public,private,protected和預設的包存取權限,如果類中的屬性方法沒有顯示的指明存取權限,則具有包存取權限,也稱它為packeged許可權,很多人也稱它為friendly存取權限,而packaged和friendly這兩個關鍵字在實際中都是不存在的。
      為了條理清晰,分三種不同情況來總結。
(1)存取權限修飾符修飾成員變數和方法
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 ,叫在同一個包中。
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);
                       }
                    }
實際上,把重要的資料修飾為private,然後寫一個public的函數訪問它,正好體現了OOP的封裝特性,是OOP安全性的體現。
(2)存取權限修飾符修飾類
   1,不能用protected和private修飾類。
   2,用friendly修飾的類叫友好類,在另外一個類中使用友好類建立對象時,要保證它們在同一包中。
(3)存取權限修飾符與繼承,這裡的存取修飾詞指的是修飾成員變數和方法。可以分為兩種情況:
   1,子類與父類在同一包中
    此時只有聲明為private的變數與方法不能被繼承(訪問)。
   2,子類與父類不在同一包中
    此時private與friendly均不能被繼承(訪問), protected與public可以。
所以,存取權限修飾符許可權從高到低排列是public  ,protected  ,friendly, private。

 

 參考原文:http://www.cnblogs.com/cucmehp/archive/2008/10/28/1321106.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.