2012-01-06 13 views

cevap

16

Bakalım:

class Test 
    def initialize; end 
end 

p Test.new.private_methods.sort.include?(:initialize) 

Bu true yazdırır, böylece initialize özel bir yöntemdir. Bu mantıklıysa, nesne oluşturulduysa yalnızca new sınıf yöntemiyle çağrılır. ancak basit değişken başlatma daha yaparsa sorunlara yol açabilecek böyle yapıcı kötüye kullanmasının

class Test 
    def initialize 
    @counter = 0 
    end 

    def reset! 
    initialize 
    end 
end 

: Biz istiyorsak, böyle bir şey yapabilir. Bir sınıftaki initialize yöntemi, otomatik olarak Özel hale gelir.

+6

Ayrıca' obj.send 'tarafından bir nesnenin initialize' çağırabilir. –

+1

@undur_gongor: Evet, bu herhangi bir özel yöntem için çalışıyor. –

4

kullanarak kontrol edebilirsiniz: `: (initialize)

puts ClassName.private_methods.sort 
İlgili konular