November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy uczynić pewną metodę dostępną wyłącznie do wewnętrznego użytku klasy, niedostępną dla tworzonych jej obiektów.
Należy umieścić słowo kluczowe private przed definicją wspomnianej metody, dzięki czemu stanie się ona niedostępna na zewnątrz klasy. W poniższym przykładzie definiowana jest metoda inicjująca (initialize), jedna metoda prywatna (secret) i jedna metoda publiczna (hint):
class TajemnaLiczba def initialize @secret = rand(20) end def hint puts "Liczba jest #{"nie " if secret <= 10}większa niż 10." end private def secret @secret end end s = TajemnaLiczba.new s.secret # NoMethodError: private method 'secret' called for #<TajemnaLiczba:0x82aea38 ...