熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

對象private:不能接觸!

2022-06-13   來源: Java核心技術 

  private關鍵字意味著除非那個特定的類而且從那個類的方法裡否則沒有人能訪問那個成員同一個包內的其他成員不能訪問private成員這使其顯得似乎將類與我們自己都隔離起來另一方面也不能由幾個合作的人創建一個包所以private允許我們自由地改變那個成員同時毋需關心它是否會影響同一個包內的另一個類默認的友好包訪問通常已經是一種適當的隱藏方法請記住對於包的用戶來說是不能訪問一個友好成員的這種效果往往能令人滿意因為默認訪問是我們通常采用的方法對於希望變成public(公共)的成員我們通常明確地指出令其可由客戶程序員自由調用而且作為一個結果最開始的時候通常會認為自己不必頻繁使用private關鍵字因為完全可以在不用它的前提下發布自己的代碼(這與C++是個鮮明的對比)然而隨著學習的深入大家就會發現private仍然有非常重要的用途特別是在涉及多線程處理的時候(詳情見第章)
  
  下面是應用了private的一個例子
  
  //: IceCreamjava
  // Demonstrates private keyword
  
  class Sundae {
   private Sundae() {}
   static Sundae makeASundae() {
    return new Sundae();
   }
  }
  
  public class IceCream {
   public static void main(String[] args) {
    //! Sundae x = new Sundae();
    Sundae x = SundaemakeASundae();
   }
  } ///:~
  
  這個例子向我們證明了使用private的方便有時可能想控制對象的創建方式並防止有人直接訪問一個特定的構建器(或者所有構建器)在上面的例子中我們不可通過它的構建器創建一個Sundae對象相反必須調用makeASundae()方法來實現(注釋③)
  
  ③此時還會產生另一個影響由於默認構建器是唯一獲得定義的而且它的屬性是private所以可防止對這個類的繼承(這是第章要重點講述的主題)
  
  若確定一個類只有一個助手方法那麼對於任何方法來說都可以把它們設為private從而保證自己不會誤在包內其他地方使用它防止自己更改或刪除方法將一個方法的屬性設為private後可保證自己一直保持這一選項(然而若一個句柄被設為private並不表明其他對象不能擁有指向同一個對象的public句柄有關別名的問題將在第章詳述)
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26742.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.