Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

"OO" - Programowanie obiektowe w praktyce

Konstrukcja obiektu z klasy

Jest w naszej klasie jedna specjalna metoda, zwana konstruktorem. Aktualnie wszystkie "specjalne" (twórcy PHP wprowadzili nawet określenie "magiczne") metody cechuje wspólny sposób nazewnictwa, rozpoczynający się od dwóch znaków podkreślenia. Konstruktor intuicyjnie posiada więc w PHP5 identyfikator __construct(). Metoda ta jest wywoływana automatycznie w przypadku tworzenia nowej instancji, nowego obiektu danej klasy. W pierwszej linijce poprzedniego listu, tej z instrukcją new nie zrobiliśmy nic innego jak właśnie wywołaliśmy owy konstruktor z dwiema zmiennymi jako jego argumenty (w PHP4 metoda konstruktora miała nawet taką samą nazwę jak klasa). Zadaniem konstruktora jest wstępne przygotowanie nowoutworzonego obiektu, możemy tam jak już wspomniałem zainicjować właściwości tworząc inne obiekty, wykonać wstępne obliczenia, słowem: wszystko, co chcielibyśmy zrobić na obiekcie zanim go udostępnimy użytkownikowi. Oczywiście nie każda klasa musi mieć konstruktor, tworząc obiekt, którego klasa nie ma konstruktora po prostu nie podajemy w nawiasach argumentów lub nawet pomijamy nawiasy:

$adam = new Czlowiek(); // tak
$ewa = new Czlowiek; // albo tak
$kain = new Czlowiek($ewa, $adam); // przekazujemy argumenty konstruktorowi
$abel = new Czlowiek($ewa, $adam);

Jeśli już programowałeś w innym języku to zapewne nasuwa Ci się pytanie czy można stworzyć kilka wersji konstruktorów. Niestety nie jest to możliwe, tak jak w PHP nie można stworzyć dwóch funkcji o tych samych nazwach, nawet gdyby miały różne listy argumentów. Stosuje się tutaj "trick" z domyślnymi wartościami argumentów i wykorzystujemy brak kontroli typów, w razie potrzeby sprawdzając, co nam przekazano w konstruktorze.

Zapewne już to wyłapałeś, ale dla podsumowania - nowe obiekty-ciasteczka tworzy się z foremek-klas za pomocą operatora new. Przy tworzeniu wywołuje on konstruktor, jeśli takowy istnieje. Do konstruktora możemy przekazać argumenty, na podstawie których on zainicjuje wstępnie właściwości obiektu. Następnie operator new zwraca nowoutworzony i już przygotowany do użycia obiekt.

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (3)
:))
Piątek 11 Kwiecień 2008 2:45:35 pm - lonas

Bardzo fajne ale ... czemu takie krotkie wiecej !! :)

koment
Czwartek 26 Lipiec 2007 10:46:57 pm - plurr <xytrass_at_o2.pl>

bardzo fajny artykul, nareszcie jasniej zrozumialem klasy ;p Tylko gdzie reszta ? :))

To są podstawy?
Niedziela 22 Lipiec 2007 10:36:39 am - solari_de_marco <solari_de_marco_at_interia.pl>

Kurs niby podstawy a .... Potrafię dobrze programować strukturalnie i chciałem się nauczyc OO i mi to ciężko idzie... :/ Myślałem ze tu się czegoś nauczy, niby oki ale ... jak mam się połączyć z bazą danych? Gdzie jest wyjasnienie ze trzeba wybrac baze danych, połączyc sie i itp, jak podajesz kod wykożystania klas to już pokaż jak się łaczyć z tą bazą danych !!

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2020 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System