類別中的方法
 課程目錄
 編輯章節
 EDU-MD
 Google 教室
 加至書籤

物件的動作

這幾個章節裡,我們已經稍稍地熟悉了一直在講的「物件導向」。但是我們還有一個很重要的東西隻字未提,那就是類別裡的方法。「方法」這名字,在不同程式語言中有不同的命字,但是說白了,它就是一個類別專屬的函數而已。

物件,動起來吧!

這個章節的重點,在於帶領讀者理解物件導向的概念,而非介紹單一個程式語法。此章節的程式語法和 JavaScript 等程式語言相近,但並非任何真實程式語言。請專注於章節中的概念部分,而非語法部分。

假設我們要寫一個程式,記錄籠子裡每一條狗的資料,那麼我們可以建立一個「狗」的類別,這麼一來我們便可以建立很多「狗」的物件,讓那些物件各自代表一條狗(每一種程式語言都不太一樣,但在此我們用constructor代表建構式):

class dog {  
  constructor(n, a){
    this.name = n;      
    this.age = a;   
  }
}    

這麼一來,我們就可以宣告一些變數,建立一些狗的物件吧!現在我們來建立兩隻狗的物件:

dog1 = dog('Amy', 6);  
dog2 = dog('Hank', 4);   

如此,我們就可以印出狗的名字跟年齡了:

print(dog1.name);  
print(dog1.age);   

但是,如果每次都要這樣寫,不是很不直覺嗎?還有,有沒有其他的東西可以讓這個「狗」的類別功能更多呢?

方法」在此時就發揮作用了。讓我們加入一個方法,讓這些狗兒可以自我介紹:

class dog {  
   constructor(n, a){  
      this.name = n;  
      this.age = a;  
   }  
   selfIntroduce(){  
      print("I am " + this.name);  
   }  
}   

上面程式裡的 **selfIntroduce()** 便是一個方法。要怎麼呼叫這個自我介紹的方法呢?讓我們建立另一隻狗的物件,並且呼叫這個方法讓牠自我介紹:

/* 建立物件 */
dog3 = dog('Sherry', 7);  
/* 呼叫方法 */  
dog3.selfIntroduce();  
/* 螢幕上印出: */  
/* 「I am Sherry」 */     

用方法改變屬性

現在,又有一條狗要過生日了,讓我們來設計一個方法,當呼叫這個方法時,就會將該狗的年齡加 1:

 class dog{  
   constructor(n, a){  
      this.name = n;  
      this.age = a;  
   }  
   selfIntroduce(){  
      print("I am " + this.name);  
   }  
   birthday(){  
      this.age += 1;  
   }  
}    

這條狗的名字叫做 Bob,原本7歲,今天生日變成8歲。讓我們用以上的敘述建立一個物件吧!

 dog4 = dog('Bob', 7);  
print(dog4.age);  
/* 螢幕上印出: */  
/* 「7」 */  
dog4.birthday();  
print(dog4.age);  
/* 螢幕上印出: */  
/* 「8」 */    
 均一平台
 台達磨課師
 酷課雲
 可汗學院
無相關資源
 收起側邊目錄
 
前往目錄頁面