2008/06/18

Rでオブジェクト指向プログラミング超入門

[[R&iPod touchの単語帳を強化したよ!!|http://d.hatena.ne.jp/syou6162/20080614/1213262597]]の中のひとが、グローバル変数でお困りのよう。クラスを作って、インスタンス変数にアクセスすれば良い? 元のソースをちゃんと読んでいないので、空気が読めてなかったら、すまん。

例: 総称関数 getAgeが idolクラスの age にアクセスしている。getAgeはidolクラスのメソッドになっている。
<<<
# まずはクラスを作る
setClass("idol",
representation(
fullname = "character",
age = "numeric",
height = "numeric",
weight = "numeric"
),
prototype(
fullname = "Iori Minase",
age = 14,
height = 150,
weight = 39
)
)

# idolクラスに属する総称関数を作る
setGeneric("getAge", function(this) standardGeneric("getAge"))
setMethod("getAge", "idol", function(this) { this@age })

# idolクラスを使ってみるよ。まずharukaというインスタンスを作る
haruka <- new("idol", fullname="Haruka Amami", age=16, height=158, weight=45)
print( getAge(haruka) ) # 総称関数getAgeからインスタンス変数にアクセスする
>>>
これをidol.rとして保存し、実行するよ。
<<<
source("idol.r")
[1] 16
>>>

こっちも参考にするといいよ。[[Rでオブジェクト指向プログラミングをする際に参考になるサイトと本|http://itoshi.tv/d/?date=20071112]]