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

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

public:接口訪問

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

  使用public要害字時,它意味著緊隨在public后面的成員聲明適用于所有人,非凡是適用于使用庫的客戶程序員。假定我們定義了一個名為dessert的包,其中包含下述單元(若執(zhí)行該程序時碰到困難,請參考第3章3.1.2小節(jié)“賦值”):
  
  //: Cookie.java
  // Creates a library
  package c05.dessert;
  
  public class Cookie {
   public Cookie() {
    System.out.   }
   void foo() { System.out.println("foo"); }
  } ///:~
  
  請記住,Cookie.java必須駐留在名為dessert的一個子目錄內(nèi),而這個子目錄又必須位于由CLASSPATH指定的C05目錄下面(C05代表本書的第5章)。不要錯誤地以為Java無論如何都會將當(dāng)前目錄作為搜索的起點看待。假如不將一個“.”作為CLASSPATH的一部分使用,Java就不會考慮當(dāng)前目錄。
  
  現(xiàn)在,假若創(chuàng)建使用了Cookie的一個程序,如下所示:
  
  //: Dinner.java
  // Uses the library
  import c05.dessert.*;
  
  public class Dinner {
   public Dinner() {
    System.out.println("Dinner constructor");
   }
   public static void main(String[] args) {
    Cookie x = new Cookie();
    //! x.foo(); // Can't
access
   }
  } ///:~
  
  就可以創(chuàng)建一個Cookie對象,因為它的構(gòu)建器是public的,而且類也是public的(公共類的概念稍后還會進(jìn)行更具體的講述)。然而,foo()成員不可在Dinner.java內(nèi)訪問,因為foo()只有在dessert包內(nèi)才是“友好”的。
  
  1. 默認(rèn)包
  
  大家可能會驚奇地發(fā)現(xiàn)下面這些代碼得以順利編譯——盡管它看起來似乎已違反了規(guī)則:
  
  //: Cake.java
  // Accesses a class in a separate
  // compilation unit.
  
  class Cake {
   public static void main(String[] args) {
    Pie x = new Pie();
    x.f();
   }
  } ///:~
  
  在位于相同目錄的第二個文件里:
  
  //: Pie.java
  // The other class
  
  class Pie {
   void f() { System.out.println("Pie.f()"); }
  } ///:~
  
  最初可能會把它們看作完全不相干的文件,然而Cake能創(chuàng)建一個Pie對象,并能調(diào)用它的f()方法!通常的想法會認(rèn)為Pie和f()是“友好的”,所以不適用于Cake。它們確實是友好的——這部分結(jié)論非常正確。但它們之所以仍能在Cake.java中使用,是由于它們位于相同的目錄中,而且沒有明確的包名。Java把象這樣的文件看作那個目錄“默認(rèn)包”的一部分,所以它們對于目錄內(nèi)的其他文件來說是“友好”的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 河南省| 岱山县| 青海省| 包头市| 扶风县| 阳春市| 合作市| 滦南县| 天津市| 唐河县| 曲阜市| 东方市| 临夏市| 西林县| 西华县| 海伦市| 施甸县| 嘉善县| 岳西县| 奎屯市| 仁怀市| 明水县| 松滋市| 马关县| 托克逊县| 光泽县| 玉林市| 屏山县| 邢台市| 疏附县| 晋中市| 阳泉市| 和平区| 腾冲县| 咸宁市| 芜湖县| 刚察县| 正蓝旗| 察哈| 宜城市| 区。|