国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

對象private:不能接觸!

2019-11-18 12:10:08
字體:
供稿:網(wǎng)友

  PRivate要害字意味著除非那個特定的類,而且從那個類的方法里,否則沒有人能訪問那個成員。同一個包內(nèi)的其他成員不能訪問private成員,這使其顯得似乎將類與我們自己都隔離起來。另一方面,也不能由幾個合作的人創(chuàng)建一個包。所以private答應(yīng)我們自由地改變那個成員,同時毋需關(guān)心它是否會影響同一個包內(nèi)的另一個類。默認(rèn)的“友好”包訪問通常已經(jīng)是一種適當(dāng)?shù)碾[藏方法;請記住,對于包的用戶來說,是不能訪問一個“友好”成員的。這種效果往往能令人滿足,因?yàn)槟J(rèn)訪問是我們通常采用的方法。對于希望變成public(公共)的成員,我們通常明確地指出,令其可由客戶程序員自由調(diào)用。而且作為一個結(jié)果,最開始的時候通常會認(rèn)為自己不必頻繁使用private要害字,因?yàn)橥耆梢栽诓挥盟那疤嵯掳l(fā)布自己的代碼(這與C++是個鮮明的對比)。然而,隨著學(xué)習(xí)的深入,大家就會發(fā)現(xiàn)private仍然有非常重要的用途,非凡是在涉及多線程處理的時候(詳情見第14章)。
  
  下面是應(yīng)用了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();
   }
  } ///:~
  
  這個例子向我們證實(shí)了使用private的方便:有時可能想控制對象的創(chuàng)建方式,并防止有人直接訪問一個特定的構(gòu)建器(或者所有構(gòu)建器)。在上面的例子中,我們不可通過它的構(gòu)建器創(chuàng)建一個Sundae對象;相反,必須調(diào)用makeASundae()方法來實(shí)現(xiàn)(注釋③)。
  
  ③:此時還會產(chǎn)生另一個影響:由于默認(rèn)構(gòu)建器是唯一獲得定義的,而且它的屬性是private,所以可防止對這個類的繼續(xù)(這是第6章要重點(diǎn)講述的主題)。
  
  若確定一個類只有一個“助手”方法,那么對于任何方法來說,都可以把它們設(shè)為private,從而保證自己不會誤在包內(nèi)其他地方使用它,防止自己更改或刪除方法。將一個方法的屬性設(shè)為private后,可保證自己一直保持這一選項(xiàng)(然而,若一個句柄被設(shè)為private,并不表明其他對象不能擁有指向同一個對象的public句柄。有關(guān)“別名”的問題將在第12章詳述)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宝鸡市| 平谷区| 湖口县| 合川市| 会理县| 资阳市| 曲阜市| 永春县| 泌阳县| 米脂县| 漳州市| 金阳县| 吉木乃县| 北票市| 青铜峡市| 化隆| 城固县| 镇原县| 牟定县| 突泉县| 广昌县| 淮安市| 呼伦贝尔市| 滦平县| 原阳县| 珲春市| 宁城县| 邢台市| 岳西县| 衡水市| 家居| 阳山县| 香港| 平谷区| 太湖县| 绥化市| 周口市| 岑巩县| 濉溪县| 六安市| 富民县|