Ruby 入門指南 - Encrypt 類別
Ruby 入門指南 - Encrypt 類別
Encrypt 類別 (class) 是我們編密碼軟體的核心,我們將之放在 encrypt.rb 檔案中
基本的設計如下
class Encrypt
def setCode
@code = Array('a'..'z').shuffle
end
def getCode
@code.join
end
def toEncode
"toEncode"
end
def toDecode
"toDecode"
end
end
e = Encrypt.new
e.setCode
puts
puts e.getCode
puts e.toEncode
puts e.toDecode
puts
=begin
《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:encrypt.rb
功能:示範 Ruby 程式
作者:張凱慶
時間:西元 2012 年 12 月
=end
我們定義四個方法 (method) ,第一個方法 setCode 用來設定密碼表。留意此時變數 (variable) @code 要用實體變數 (instance variable) ,這樣才能用在 Encrypt 中的其他方法
def setCode
@code = Array('a'..'z').shuffle
end
第二個方法 getCode 用來取得密碼表 @code ,這可以讓我們在類別以外的地方取得密碼表。由於 @code 為陣列 (array) ,這裡使用陣列的 join 方法將 @code 連結成一個字串 (string)
def getCode
@code.join
end
join 的預設參數 (parameter) 為 sep = "" ,因此沒有額外設定 sep 的話,陣列中的元素就以 "" 連接在一起。
其餘兩個 toEncode 與 toDecode 是用來編碼與解碼的,這裡先寫出來
def toEncode
"toEncode"
end
def toDecode
"toDecode"
end
底下我們寫了一小段測試目前 Encrypt 類別的程式
e = Encrypt.new
e.setCode
puts
puts e.getCode
puts e.toEncode
puts e.toDecode
puts
執行結果如下
雖然測試程式可以和類別定義都放在同一個檔案裡,可是這不是一個好的設計習慣,因為我們設計 Encrypt 類別的目的就是作為一個可以一再重複使用的類別,如果每個程式檔案都得重複放 Encrypt 的定義就真的太麻煩了。我們應該就只把 Encrypt 放在 encrypt.rb 裡,然後給其他程式檔案 require 唷!
中英文術語對照 | |
---|---|
類別 | class |
方法 | method |
變數 | variable |
實體變數 | instance variable |
陣列 | array |
字串 | string |
參數 | parameter |
您可以繼續參考
軟體開發
- 陣列
- Encrypt 類別
- require
- initialize
- 編碼與解碼
- 認識標準程式庫及 Tk
相關目錄
回 Ruby 入門指南
回 Ruby 教材
回首頁
參考資料
http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_classes.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/classes.html
http://www.rubyist.net/~slagell/ruby/oothinking.html
http://www.rubyist.net/~slagell/ruby/classes.html
訂閱:
張貼留言 (Atom)
window.___gcfg = { 'lang': 'zh-TW' };
沒有留言:
張貼留言