Ruby/Inicjalizacja obiektów: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje)
Szymon wro (dyskusja | edycje)
Nie podano opisu zmian
Linia 1:
== Inicjalizacja obiektów ==
 
Nasza klasa <tt>Owoc</tt> z [[Ruby/Akcesory|poprzedniego rozdziału]] ma dwie zmienne instancji, jedną by opisywać rodzaj owocu, a drugą by opisywać jego kondycję. Zaraz po napisaniu indywidualnej metody <tt>inspect</tt> dla tej klasy, stało się jasne, że owoc musi posiadać te dwie własności. Na szczęście Ruby dostarcza sposóbeleganckiego sposóbu na zapewnienie, że zmienne instancji będą zawsze zainicjalizowane.
 
=== Metoda <tt>initialize</tt> ===
 
Ilekroć Ruby tworzy nowy obiekt, szuka metody nazwanej <tt>initialize</tt> i wykonuje ją. Tak więc najprostszą rzeczą, którą możemy zrobić jest użycie metody <tt>initialize</tt>, by umieścićprzypisać domyślne wartości wedo wszystkich zmiennych instancji. W ten sposób metoda <tt>inspect</tt> będzie miała treść do wyświetlenia.
 
<source lang="ruby">
<pre>
ruby> class Owoc
| def initialize
| @gatunek = "jablko"
| @stan = "dojrzaly"
| end
| end
 
nil
ruby> o4o = Owoc.new
p o #=> "dojrzaly owoc rodzaju: jablko"
</presource>
 
=== Zmiana założeń w wymagania ===