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

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

實例變量與存取方法

2019-11-18 11:52:30
字體:
來源:轉載
供稿:網友

  實例變量
  因此,我們根據對象的行為來定義實例,這在很多情況下是合理的,但一般來說,用戶定義數據類型也應該包含狀態變量。也就是說,對于每個 Dog 的實例,根據毛發顏色、重量等特征來區分是很重要的。區分 Dog 實例的狀態變量稱為實例變量。
  現在我們增加一個實例變量來反應特定狗(dog)的叫聲,一個 String 實例可以代表每個狗(dog)的叫聲(bark):
   class Dog {
   String barkSound = new String("Woof.");
   void bark() {
   System.out.PRintln(barkSound);
   }
   void bark(String barkSound) {
   System.out.println(barkSound);
   }
  }
  現在 Dog 的定義包括 barkSound 的實例變量。 每次一個新的 Dog 實例創建時,該實例包括一個 String 實例的引用變量表示特定狗(dog)的叫聲(bark)。 該 實例 變量初始化為默認值 "Woof." 。 看看這行代碼
   String barkSound = new String("Woof.");
  這條語句分配了一個初始化為 "Woof." (由括號后的 String 類名提供)的 String 實例,并將數據保存在引用變量 barkSound 中。值得注重的是引用變量 barkSound 是 Dog 每個實例的一部分,它引用一個 String 實例,這個 String 實例象 Dog 實例本身一樣,是分配在堆里的:
  現在默認的叫聲行為用一個實例變量來表示,我們可以從原來的 bark() 方法中除去 "Woof." ,而使用 barkSound 的當前值的引用來取代:
   void bark() {
   System.out.println(barkSound);
   }
  也就是說,我們把一個無條件狀態數據從方法定義轉換為用來區分狗(dog)的實例變量,可能更重要的是,對每個特定的狗(dog),這個變量的值可以動態改變。。
  存取方法(access method)
  為了讓實例變量的值能夠在需要的時候改變,我們應該提供一個方法來改變其值;這種方法被非凡地稱為存取方法(access method)。依照慣例,只是簡單的用來改變實例變量值的方法名稱應該以“set”開頭:
   void setBark(String barkSound) {
   this.barkSound = barkSound;
   }
  上例中的方法很有意思,它對兩個不同的變量用了同一個名字 barkSound。首先,作為參數定義的barkSound 是一個新的叫聲(barking sound)。在此方法中所有對 barkSound 的沒有限定的引用都指的是這個作為參數傳入的數據。但是,我們還有一個為每個被初始化的狗(dog)提供的實例變量 barkSound。在java(TM) 中,我們可以用非凡的 "實例句柄(instance handle)" this 來指定 Dog 的當前實例。因此,
  
  this.barkSound = barkSound;
  
  語句將實例變量 (this.barkSound 的當前值改變成 setBark() 的參數 (barkSound)傳入的新值。
  
  為了更明白地說明 this 變量,假訂我們為 Dog 創建了一個實例叫 fido,然后執行fido的方法setBark()
   fido.setBark("Ruff.");
  在setBark() 中的this 就是指 fido,更確切地說,this.barkSound 指的就是對象 fido 的 barkSound 實例變量。
  在 DogChorus 的下面版本中,創建了一個對象 fido,將它的 barking 特征從默認的 "Woof." 改變為 "Ruff.",然后調用 barking 行為:
   public class DogChorus {
   public static void main(String[] args) {
   Dog fido = new Dog();
   fido.setBark("Ruff.");
   fido.bark();
   System.exit(0);
   }
  }
  經過這種修改,象 fido 這樣的對象,其特征就可以由實例(狀態)變量的當前值和 Dog 中方法所定義的行為一起來反映。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 资源县| 长海县| 星座| 土默特右旗| 运城市| 定西市| 张家口市| 清苑县| 图片| 鄂伦春自治旗| 五华县| 荥阳市| 宣化县| 临颍县| 太保市| 桐城市| 张家川| 乐昌市| 商丘市| 东丽区| 越西县| 福清市| 天峨县| 景东| 龙陵县| 县级市| 中宁县| 亳州市| 罗定市| 财经| 怀集县| 永德县| 探索| 彭州市| 伊川县| 铜川市| 周口市| 利辛县| 高邑县| 体育| 吉林省|