[Ruby教學]物件導向

在寫程式之前,我想先提一下物件導向的觀念。
我學Java的時候是先學語法,再慢慢了解物件導向的觀念,
但我認為這樣的順序比較費力。本篇先介紹在程式之前要了解的概念。
如果你已經很熟物件的觀念,就跳過這篇。

舉我自己身邊的例子,我妹有五隻波斯貓。
從外觀上來說,貓媽媽是比較特別的,因為牠天生只有一隻眼睛。其它的貓則都正常。
這五隻貓的個性不太一樣,其中有一隻特別外向,而且很像狗,會到處聞來聞去。
除了外觀上的不同,每一隻貓也有自己的個性,就算外觀上相同,個性相近,
我們還是可以區分出這一隻貓和那一隻貓是不同的貓。

如果我沒描述貓的特性,當你看到五隻貓的時候,腦袋會出現貓的樣子。
貓就是類別(Class)。類別就像是一個樣版,或是藍圖,它有一些既定的描述,
例如四隻腳,會發出聲音。而從類別產生出來的實體(instance)則稱為物件(Object)。
每個物件都是獨立無二的,貓爸爸就是貓爸爸,牠不會是貓媽媽。
而波斯貓這個類別是由貓這個類別而來,所以波斯貓會有貓的一些特性和行為,
再加上波斯貓本身獨有的特色,這種關係我們稱為繼承。
(物件導向還有一些特性,在這裡暫時先不討論)

我們從上面的例子可以發現物件(或類別)包含: 1.屬性 2.行為
對照到程式的話,屬性(Attribute)就變成描述資料,例如腳的數目,眼睛的數目,毛色。
行為(Behavior or Method)則是動作,例如打架,吃東西,睡覺。
那麼,程式上怎麼表示? 通常是先定義貓類別,再用類別產生物件。

#定義貓類別
class 貓
    def 貓叫
       #程式碼....
    end
end

#產生貓爸爸物件
貓爸爸 = 貓.new
貓爸爸.貓叫

從上面的程式我們可以了解如何使用物件和方法,
在未來的文章中,會一再看到類似這樣使用物件的方式。
其它相關的物件導向觀念會在未來介紹。

[Ruby教學]物件導向 有 “ 5 則留言 ”

  1. 最誇張的是小貓還喜歡偷吃人們的時候,像我妹買宵夜的時候,小貓就會跑來咬小一部份到旁邊。

    這句話是不是打錯了

  2. To gpgp356789,
    已更正,謝謝你指正。

    To gary,
    謝謝。
    我想,生活中有很多的觀察都可以是物件導向的觀念。

  3. 引用通告: [Ruby教學]類別和方法(1) « Grady’s Programming Notes

發表留言