Perl, Objektově orientované programování (51.díl)

Napsal O webu (») 3. 9. 2008 v kategorii Programování, přečteno: 1624×
obrazky/logo_perl.jpg

Metody

Metody objektů se od běžných podprogramů způsobem práce s nimi. U podprogramů je již v době překladu jasné, o jaký podprogram se jedná. U metody je tato skutečnost známa až v okamžiku jejího volání. Před každým voláním metody se tedy nejprve musí určit, do kterého balíku volaný podprogram náleží. Díky tomu je volání metody o něco pomalejší, než volání obyčejného podprogramu.


Voláme-li metody třídy, lze snadno určit balík, do kterého podprogram náleží (jméno třídy je zadáno jako první argument metody). O něco komplikovanější je to v případě, že voláme metodu objektu. Protože je při vytváření pomocí funkce „bless“ objektu řečeno, k jaké třídě náleží, je potom možné pomocí funkce „ref“ název této třídy zpětně získat. Existují dva druhy volání metod:


1. pomocí operátoru ->
2. pomocí nepřímé notace.


Volání metod pomocí operátoru ->


Na levé straně operátoru se nalézá ten, kdo chce metodu vyvolat, a na pravé straně jméno metody. Je-li nalevo objekt, jedná se o volání metody objektu, je-li tam jméno třídy, jedná se o volání metody třídy.Seznam argumentů metody musí být uzavřen v kulatých závorkách.



$objekt->metoda;

// metoda objektu

$objekt->metoda(l, 2, 3);

// metoda objektu s argumenty

Trida->metoda;

// metoda třídy

Trida->metoda(l, 2, 3);

// metoda třídy s argumenty




Volání metod pomocí nepřímé notace


Tento způsob volání metod je shodný s voláním obyčejných podprogramů v Perlu. Nejprve je uvedeno jméno funkce, pak následuje ten, kdo metodu volá a nakonec případný seznam argumentů. Kulaté závorky kolem seznamu argumentů jsou nepovinné stejně jako u seznamových operátorů (je třeba se pouze řídit prioritou operátorů ve výrazu).



// metoda objektu

metoda $objekt;

// metoda objektu s argumenty

metoda $objekt 1, 2, 3;
metoda $objekt (1, 2, 3);

// metoda třídy

metoda Trida;

// metoda třídy s argumenty

metoda Trida 1, 2, 3;

metoda Trida (1, 2, 3);




A to by bylo pro dnešek všechno. V dalším díle se podíváme na dědičnost. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.


Autor: Robert Habrman
Štítky: Perl
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 jedenáct a třináct