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

VPN Gate Client 4.27.9668 (201805030) 簡體中文版 - 不限流量免費VPN軟體 手機可用公共VPN中繼伺服器

JavaScript 入門指南 - 完成版的 Encode Software

Tình cờ gặp nhau 3 lần trên một chuyến xe, tài xế bus kết hôn với nữ hành khách vì "có duyên phận"