程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java的private關鍵字

java的private關鍵字

編輯:關於JAVA

private關鍵字意味著除非那個特定的類,而且從那個類的方法裡,否則沒有人能訪問那個成員。同一個包內的其他成員不能訪問private成員,這使其顯得似乎將類與我們自己都隔離起來。另一方面,也不能由幾個合作的人創建一個包。所以private允許我們自由地改變那個成員,同時毋需關心它是否會影響同一個包內的另一個類。默認的“友好”包訪問通常已經是一種適當的隱藏方法;請記住,對於包的用戶來說,是不能訪問一個“友好”成員的。這種效果往往能令人滿意,因為默認訪問是我們通常采用的方法。對於希望變成public(公共)的成員,我們通常明確地指出,令其可由客戶程序員自由調用。而且作為一個結果,最開始的時候通常會認為自己不必頻繁使用private關鍵字,因為完全可以在不用它的前提下發布自己的代碼(這與C++是個鮮明的對比)。然而,隨著學習的深入,大家就會發現private仍然有非常重要的用途,特別是在涉及多線程處理的時候(詳情見第14章)。
下面是應用了private的一個例子:
 

//: IceCream.java
// 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 = Sundae.makeASundae();
  }
} ///:~

這個例子向我們證明了使用private的方便:有時可能想控制對象的創建方式,並防止有人直接訪問一個特定的構建器(或者所有構建器)。在上面的例子中,我們不可通過它的構建器創建一個Sundae對象;相反,必須調用makeASundae()方法來實現(注釋③)。

③:此時還會產生另一個影響:由於默認構建器是唯一獲得定義的,而且它的屬性是private,所以可防止對這個類的繼承(這是第6章要重點講述的主題)。

若確定一個類只有一個“助手”方法,那麼對於任何方法來說,都可以把它們設為private,從而保證自己不會誤在包內其他地方使用它,防止自己更改或刪除方法。將一個方法的屬性設為private後,可保證自己一直保持這一選項(然而,若一個句柄被設為private,並不表明其他對象不能擁有指向同一個對象的public句柄。有關“別名”的問題將在第12章詳述)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved