0

Rubyは、クラスとそのインスタンスを内部的にどのように区別しMyClassますobjか?MyClassのインスタンスの作成を許可するが、のインスタンスの作成を許可しないようにするにはどうすればよいobjですか?

MyClass = Class.new
obj = MyClass.new
4

1 に答える 1

2

区別しません。MyClassClass(のインスタンスと同じように)objのインスタンスであり、メソッドMyClassを実装しますが、実装しません。これは非常に単純です。ここでは特に特別なことは何も起こらず、他の方法とほとんど同じです。newObjectClass#new

ここで、各オブジェクトのクラスの祖先を確認できます。

MyClass = Class.new
obj = MyClass.new

MyClass.class.ancestors  #=> [Class, Module, Object, Kernel, BasicObject]
obj.class.ancestors      #=> [MyClass, Object, Kernel, BasicObject]
于 2013-02-11T05:20:06.620 に答える