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

首頁 > 學院 > 開發設計 > 正文

Java 學習之深入研究類的各種屬性

2019-11-18 10:42:11
字體:
來源:轉載
供稿:網友

  Public、PRivate、protected顯示了三種類中的屬性和服務的類型,public是可以隨意訪問的、private是外界不能訪問的(顯示了數據的封裝性)、protected說明數據是受保護的。下面就來具體講述一下這三個究竟有什么區別。
  
  首先要了解一下包的概念。有若干個類,它們相互之間有一定的關系,那么就可以定義一個包容納這些類,包不僅僅只能包含類,它可以擁有類、接口、構件、節點、協作,包內還可以包含包。
  
  現在就讓我們來具體討論一下這三個種類的不同之處。
  
  作為public的類和屬性是可以被外界任意調用的,無論是在類中,還是跨越類的訪問(假如不屬于同一個包,就要調用import語句,添加包名),這一點是非常好理解的。
  
      Private的屬性和方法是最自私的,它定義的屬性和方法只能在本類中使用,到類外,是無論如何都不能被使用的,如:
  
  class Date
  
  {
  
  private int day;
  
  public void tomorrow()
  
  {
  
  this.day = this.day + 1;
  
  }
  
  }
  
  public class DateUser
  
  {
  
  public static void main(String args[])
  
  {
  
  Date mydate = new Date();
  
  mydate.day = 21; //注重這句話是錯的
  
  }
  
  }
  
  在這個程序中,創建了一個Date類的對象mydate,這是可以的,但是由于類Date中的day是私有變量,所以,創建的這個對象mydate不能通過mydate.day來訪問這個屬性,假如在其它類中要使用這個私有變量,那么只能通過Date中的public的方法來訪問這個屬性,這樣,就很好的保證了數據的封裝性,就像面向對象中提到的報刊亭的故事一樣,購買報刊的人不能自己伸手進去拿報紙或是找零錢,而只能由報刊亭內部人員來處理這些事情一樣。在上面的例子中,大家可以發現,類Date中的默認方法(Date())并沒有定義它的類型,這就意味著它是友好的,也就是意味著它在本包內是public的,而在外包內是private的。但是一旦把它的類型定義為private,那么連Date mydate = new Date()也會出錯,這是因為默認的構建器已經被定義為private類型,也就是即使是本包內的其他類也不能訪問了。
  
  對于protected就要考慮到包的概念,假如有兩個類,如:Date和DateUser兩個類分別位于不同的包內,而DateUser是繼續Date類的一個類,那么假如要使DateUser中的方法訪問Date中的方法或屬性,除了使用import將包導入,還需要考慮所要訪問的方法和屬性是什么類型的,一般而言,跨包訪問,public的方法和屬性都一定可以訪問,但是考慮到假如將需要使用的方法和屬性都修改成public的話,那么就可以答應任何事物訪問,就不具有安全性,為了這個事情的考慮,添加了protected,假如將需要訪問的方法和屬性定義為protected,那么其它的類無法訪問,而外包的DateUser通過import就可以訪問這些屬性和方法了,即保證了數據的安全性,也保證了數據被很好的使用。范例如下:
  
      package a.b;
  
      public class Sample
  
      {
  
         protected void doing();
  
  }
  
  import a.b.*;
  
  public class Sample1 extends Sample
  
  {
  
      public static void main(String args[])
  
      {
  
         Sample1 x=new Sample1();
  
         x.doing();
  
  }
  
  }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延长县| 望都县| 兴隆县| 土默特右旗| 嘉善县| 崇阳县| 拉萨市| 灵寿县| 阿鲁科尔沁旗| 景洪市| 临海市| 忻州市| 阜新市| 理塘县| 卢龙县| 大石桥市| 武山县| 遂昌县| 公安县| 陆丰市| 黄龙县| 修文县| 灵台县| 资阳市| 达日县| 阿鲁科尔沁旗| 女性| 渝北区| 惠州市| 监利县| 大石桥市| 甘德县| 舞钢市| 平江县| 井冈山市| 白朗县| 东莞市| 平昌县| 海阳市| 安福县| 芜湖县|