Ruby/Zmienne klasowe: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje) |
Szymon wro (dyskusja | edycje) Nie podano opisu zmian |
||
Linia 1:
== Zmienne klasowe ==
Zmienne ''klasowe'' są współdzielone przez wszystkie instancje danej klasy. W Rubim, do oznaczania zmiennych klasowych używa się prefiksu <tt>@@</tt>. W poniższym przykładzie zmienna <tt>@@
<source lang="ruby">
class
@@ilosc = 0
Linia 11:
end
def self.
@@ilosc
end
def populacja # metoda instancji
@@ilosc
end
Linia 21:
3.times do
end
puts
puts
</
<tt>@@ilosc</tt> jest zmienną klasową. W konstruktorze klasy <tt>
Metoda zdefiniowana jako <tt>self.ile_instancji</tt> jest ''metodą klasową''. Inną metodą tego rodzaju np. <tt>new</tt>. Metoda klasowa może być wywołana jedynie na rzecz klasy, nie na rzecz obiektu. W naszym przykładzie równoważną metodą, ale nie klasową, jest metoda <tt>ile</tt>. Obie zwracają wartość naszej zmiennej klasowej. Wynik działania instrukcji <tt>puts</tt> oznaczyliśmy za pomocą komentarzy (<tt># => ...</tt>). Jak widzimy, każde kolejne utworzenie instancji klasy <tt>Test</tt> powoduje zwiększenie o jeden zmiennej <tt>@@ilosc</tt>.▼
▲Metoda zdefiniowana jako <tt>self.
<noinclude>
{{ProstaNawigacja|spis=Ruby|poprzart=Ruby/Zmienne globalne|poprz=Zmienne globalne|nastart=Ruby/Zmienne instancji|nast=Zmienne instancji}}
|