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







沒有留言:




















window.___gcfg = { 'lang': 'zh-TW' };





Popular posts from this blog

迅雷 Thunder 7.9.43.5054 免安裝版 (9.1.41.914 安裝版) - 支援BT下載的萬用 檔案下載工具

Nhiều đồn đoán cho rằng bộ đồ "phá vỡ quy tắc" của Meghan Markle được lấy cảm hứng từ trang phục của Công nương Diana

Cụ ông 92 tuổi gào khóc vì mất hết tiền tiết kiệm cả đời, càng cay đắng hơn khi kẻ trộm là đứa cháu trai 34 tuổi