Ruby 入門指南 - initialize
Ruby 入門指南 - initialize
initialize 方法 (method) 為 Ruby 的內建名稱,主要用來使物件 (object) 初始化
在其他物件導向程式語言中,這個 initialize 方法通常被稱為建構子 (constructor) 。
所謂初始化就是設定好物件的實體變數 (instance variable) ,假如物件的實體變數有範圍限制,例如長、寬各不超過多少,就能夠在 initialize 方法進行設定及檢查。
就我們的 Encrypt 類別 (class) 需要的 initialize 方法其實很簡單,就是把原本 setCode 的內容移過來就好
def initialize
@code = Array('a'..'z').shuffle
@alph = Array('a'..'z')
end
我們另外加上了一個實體變數 @alph ,這是按字母順序的英文小寫字母表,稍後編碼及解碼都需要用到。
另外,我們仍保留 setCode 方法,並將其改成
def setCode(data)
@code = data.split("")
end
新版的 setCode 利用參數來設定 @code ,預期 data 為字串 (string) ,利用字串的 split 方法將字串的每個字元拆解成 @code 的元素。
因為稍後我們會在 GUI 版本中的程式設置存檔功能,所儲存的正是字串型態的 @code ,因此讀取檔案自然也是字串,所以要經過這個轉換過程。
修改後的 encrypt.rb 如下
class Encrypt
def initialize
@code = Array('a'..'z').shuffle
@alph = Array('a'..'z')
end
def setCode(data)
@code = data.split("")
end
def getCode
@code.join
end
def toEncode
"toEncode"
end
def toDecode
"toDecode"
end
end
=begin
《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:encrypt.rb
功能:示範 Ruby 程式
作者:張凱慶
時間:西元 2012 年 12 月
=end
原本 encryptdemo.rb 呼叫 setCode 要刪除,如下
require "./encrypt.rb"
e = Encrypt.new
puts
puts e.getCode
puts e.toEncode
puts e.toDecode
puts
=begin
《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:encryptdemo.rb
功能:示範 Ruby 程式
作者:張凱慶
時間:西元 2012 年 12 月
=end
執行 encryptdemo.rb ,結果如下
接下來,我們繼續設置編碼與解碼的功能吧!
中英文術語對照 | |
---|---|
方法 | method |
物件 | object |
實體變數 | instance variable |
類別 | class |
字串 | string |
您可以繼續參考
軟體開發
- 陣列
- Encrypt 類別
- require
- initialize
- 編碼與解碼
- 認識標準程式庫及 Tk
相關目錄
回 Ruby 入門指南
回 Ruby 教材
回首頁
參考資料
http://www.rubyist.net/~slagell/ruby/objinitialization.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/classes.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_classes.html
訂閱:
張貼留言 (Atom)
window.___gcfg = { 'lang': 'zh-TW' };
沒有留言:
張貼留言