Ruby class initialize (constructor) is private method or public method?
-
14-04-2021 - |
質問
Is initialize method (constructor) private or public in ruby?
解決
Let's see:
class Test
def initialize; end
end
p Test.new.private_methods.sort.include?(:initialize)
This prints true
, so initialize
is a private method. This makes sense, it is only called by the new
class method if the object is created. If we want, we can do something like this:
class Test
def initialize
@counter = 0
end
def reset!
initialize
end
end
Misusing the constructor like this could however lead to problems if it does more than simple variable initialization.
他のヒント
The initialize
method in a class automatically becomes Private.
You can check it using:
puts ClassName.private_methods.sort
所属していません StackOverflow