Programowanie obiektowe w PHP cz. 5-6
Poniżej prezentuję kolejne fragmenty szkolenia Programowanie obiektowe w PHP.
Dla większej wygody można powiększyć nagranie klikając ikonkę w prawym dolnym rogu filmu. Klip wymaga wtyczki Adobe Flash Player.
Ostatnia instrukcja powyższego przykładu jest trochę dziwna. Do metody „metoda1″ obiektu „obiekt” jest przekazywane pole tego samego obiektu, chociaż byłoby ono dostępne wewnątrz klasy poprzez referencję $this. Przekazanie tej wartości jawnie na liście argumentów jest spowodowane tym, by można było do tej metody przekazywać również inne wartości np. pola innych obiektów, wyniki działania dowolnej funkcji zwracającej liczbę, lub jawnie konkretną wartość. Ten ostatni przypadek realizowany jest w przykładzie poniżej.
Słowniczek
- abstrakcja
- klasa może być modelem abstrakcyjnym dla innych klas dziedziczących po niej. Pojęcie to jest blisko związane z dziedziczeniem w szczególności po klasach abstrakcyjnych. Klasy i metody abstrakcyjne omawiam w lekcjach 35-39. Czasami abstrakcją nazywane jest też odwzorowanie rzeczywistych modeli w strukturze klasy (abstrakcja danych i procesów). Klasa samochód byłaby abstrakcją rzeczywistego samochodu, zawarta w klasie właściwość silnik byłaby abstrakcją części samochodu, a metoda jedź – abstrakcją funkcji samochodu.
- przesłanianie pól i metod
- Jest to redefiniowanie / nadpisywanie pól i metod klasy bazowej w klasie pochodnej. Ten temat poruszam w lekcjach 11 i 12.
- metody wirtualne
- W PHP każda metoda, która została przesłonięta w klasie pochodnej staje się metodą wirtualną. W innych językach wymagałoby to zastosowania specjalnej techniki (np. poprzedzenie definicji metody słowem virtual) w PHP mamy to z automatu. Ten temat poruszam w lekcji 11.
- polimorfizm (wielopostaciowość)
- mechanizm który pozawala wywołanie metod o takiej samej nazwie zawartych w różnych obiektach w zależności od kontekstu wywołania metody. Przykład polimorficznego wywołania metody zawiera lekcja 11.