Ruby on Rails díl.19, Ruby - Třídy I.

Napsal (») 25. 3. 2007 v kategorii Programování, přečteno: 1595×
obrazky/rubyonrailsn.pngIdeální webhosting pro Ruby on Rails je banan.cz.

Definice třídy


Třídy jsou v Ruby definované pomocí používání klíčového slova class následovaného jménem. Jméno musí začínat velkým písmenem a na základě dohody jména která obsahují víc než jedno slovo se píší společně bez separačních znaků. Třídní definice může obsahovat metodu, třídní proměnnou, a instance proměnných stejně jako volání metod, které provedou třídní souvislost, jako attr_accessor. Definice třídy je ukončená klíčovým slovem end.

Příklad:

class MojeTrida
def nejaka_metoda
end
end


Instanční proměnné


Instanční proměnné jsou vytvořený pro každou instanci třídy a jsou přístupné jen uvnitř této instance nebo skrz metody poskytnuté touto instancí. Pro zpřístupnění se používá @ operátor.

Příklad:

class MojeTrida
@jedna = 1
def delej_neco
@jedna = 2
end
def vystup
puts @jedna
end
end
instance = MojeTrida.new
instance.vystup
instance.delej_neco
instance.vystup


Překvapivě, bude zobrazen tento výstup:

nula
2


Toto stane se ( nula v prvním řádku výstupu) protože @jedna definovaná pod třídou MojeTrida je instance proměnné patřící třídě object (poznámka: toto není stejné jako třídní proměnná a nemohlo by to být označováno jako @@jedna), zatímco @one definovaný uvnitř metody delej_neco je instance proměnné patřící třídě MojeTrida.

Třídní proměnná


Třídní proměnné jsou zpřístupněné používáním @@ operátora. Tyto proměnné jsou přidružené s třídou spíše než nějaká objektová instance třídy a jsou stejné napříč všemi instancemi objektu.(Je to něco stejného jako proměnné třídy "static" v Javě nebo C++) .

Příklad:

class MojeTrida
@@hodnota = 1
def pridej_jednu
@@hodnota= @@hodnota + 1
end

def vyhodnot
@@hodnota
end
end
instanceJedna = MojeTrida.new
instanceDva = MojeTrida.new
puts instanceJedna.vyhodnot
instanceJedna.pridej_jednu
puts instanceJedna.vyhodnot
puts instanceDva.vyhodnot


Výstupy:

1
2
2

Štítky: Ruby on Rails
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel třináct a jedna