次の例では、すべてが論理的です。
class Something
def initialize
@x=101
end
def getX
return @x
end
end
obj = Something.new
puts obj.getX
=>101
Something.new は、クラス Something のすべてのメソッドに表示されるインスタンス変数 @x を使用して、クラス Something の新しいインスタンスを作成します。
しかし、initialize(constructor) メソッドを使用しない 2 番目の例ではどうなるでしょうか。
class Something
def bla_bla_method
@x=101
end
def getX
return @x
end
end
obj = Something.new
puts obj.getX
=>nil
obj.bla_bla_method
puts obj.getX
=>101
bla_bla_method が呼び出されると、(コンストラクターのように) 新しい instance_variable @x が作成され、すべてのメソッドで再び使用できる「インスタンス変数テーブル」にそのインスタンス変数が追加されますか?
したがって、クラスSomethingに新しいメソッド「new_method」を追加すると(2番目の例):
def new_method
@x=201
end
...
obj.bla_bla_method
puts obj.getX
=>101
obj.new_method
puts obj.getX
=>201
それで、私がこれを正しく理解しているなら、クラスのすべてのメソッドは、クラスのすべてのメソッドで利用できる新しいインスタンス変数を作成できますか? そして、すべてのメソッドがそのインスタンス変数を何度も上書きできますか (周期的)?
私はルビーに慣れていないので、ここで大きな間違いを犯しているか、基本的な概念を理解していない可能性があります。大声で叫ばないでください:D