-2
所以,我有以下設置如何調用一個類的實例,實例方法從不同的類
class foo
:attr_accessor :textBoxInFoo
@textBoxInFoo
def appendText
//appends text to textBoxInFoo
end
def getLastPartOfText
//gets the last line of text in textBoxInFoo
end
end
class bar
def UseFoo
//Declares instance of textBoxInFoo
end
end
class snafu
def runInBackground
//Needs to read and write from instance of textBoxInFoo in bar class
end
end
什麼,我沒有完全理解是怎麼做我需要在runInBackground做爲了讓它閱讀和寫入textBoxInFoo,我一直在閱讀實例和類方法的各種解釋,而且他們中沒有人真的點擊過我,所以我想知道是否有人知道我搞亂了什麼。
這是有點混亂,你一直在談論textBoxInFoo的實例,但似乎沒有這樣的類。這些類如何相互關聯?此外,你的代碼是不是有效的紅寶石 - 這可能與你的問題相切,但它絕對是一個分心 –
通常,你創建一個類的實例(即現在是該類的一個對象),該實例可以使用實例變量和該類的方法。在你的情況下,你試圖訪問另一個類'snafu'中的實例變量。但爲了訪問'@ textBoxInFoo',你應該首先實例化一個類'foo'的實例。因此,例如,在'runInBackground'中,您將創建一個新的實例'text = foo.new',然後您可以訪問實例變量'text.textBoxInFoo'。 –
在'RunInBackground'中,您可以使用'Foo.new.textBoxInFoo'創建一個到另一個對象的本地引用。如果你不想初始化'Foo',那麼你可以創建一個'Foo :: TextBoxInFoo'常量。順便說一下,你的類名需要以大寫字母開頭。 –