PHP - klasy i obiekty - wstęp
| DZIAŁANIE: | brak działania |
Kod:
Ewentualne Objaśnienia:
Teraz chciałem zająć się troszkę tzw. klasami i obiektami. Niegdyś w PHP obiektowość była 'jako taka' traktowano ją raczej 'olewczo'. Kiedy pojawiła się 5 wersja tego języka wyszło na jaw, że jego twórcy włożyli sporo pracy aby dostosować PHP do nowoczesnych standardów programowania. To pozwala nam, a raczek znacznie ułatwia napisanie kodu wielokrotnego użytku.
Może ktoś z Was już słyszał o programowaniu obiektowym - jest to pewna metoda na pisanie kodu tak, aby był on możliwy do wielokrotnego użycia w wielu różnych projektach. Jest to na pewno bardzo wygodne kiedy możemy tak postępować niż zmieniać w wielu plikach masę różnych nieraz malutkich, ale jakże bardzo istotnych elementów.
Kiedy zaczynasz programowanie obiektowe - niejako zmienia się Twój sposób, podejście do pisania, programowania. Tutaj zaczynamy odwzorowywać pewne obiekty, mechanizmy w kodzie naszego skryptu, programu. Taki właśnie mechanizm czy tam przedmiot, obiekt powinien być opisany w pewien jasny, zrozumiały sposób ( dla języka programowania ). I właśnie za to odpowiada tzw. klasa - może my sobie ją wyobrazić jako pewien projekt, założenie obiektu - dzięki czemu możemy taki obiekt utworzyć. No i teraz każdy utworzony na podstawie takiej klasy element - nazywamy obiektem.
Czyli ogólnie mówiąc : klasa opisuje przedmiot czy mechanizm, a operacje na danym przedmiocie czy mechanizmie przeprowadzamy poprzez reprezentujący go obiekt.
Może to wszytko się wydawać na początku trudne do zrozumienia, skomplikowane
itd, jednak wcale tak nie mus być - aby dobrze zrozumieć sens, istotę i
działanie obiektowości istotne jest aby przeanalizować podstawowe pojęcia
związane z programowaniem obiektowym. Tak więc zobaczmy na pojęcia :
- KLASA - jest to wzorzec , podstawowy kod do tworzenia nowych obiektów. Klasa
składa się z definicji (jej samej) oraz metod i zmiennych składowych w niej
zawartych
- OBIEKT - jest to egzemplarz klasy, jest tworzony podczas działania danego
programu - a ten program zawiera wszystkie niezbędne informacje o swoim stanie i
udostępnia swój interfejs
- METODA KLASY - jest to nic innego jak wewnętrzna funkcja klasy, która
realizuje ściśle określone zadanie na rzecz obiektu, dla którego właśnie została
wywołana. Podlega ona zasadą zasięgu
- ZMIENNA SKŁADOWA - jest wewnętrzna zmienną klasy i podobnie jak metoda podlega
zasadą zasięgu. Przechowuje ona dowolne informacje o stanie obiektu
- HERMETYZACJA - jest to ogólna koncepcja projektowania obiektowego, która
polega na ukryciu przed programistą korzystającym z zewnętrznej klasy jej
implementacji, a wywiedzeniu jedynie niezbędnego interfejsu programistycznego.
Czyli tak prościej mówiąc - dzięki hermetyzacji programista nie musi się skupiać
na działaniu klasy - a jedynie po przeczytaniu pewnej dokumentacji powinien być
w stanie korzystać z zaimplementowanej klasy.
Pewnie trochę to teraz dla Was zagmatwane, myślicie kiedy używać pojęcia klasa, a kiedy obiekt itd. Jak mówiłem klasa jest wzorcem - takim jakby szablonem do utworzenia obiektów. Kiedy jest mowa o czymś takim jak klasa - chodzi o kod o strukturze :
class JakaśKlasa
{
a tutaj implementacje klasy
}
Jeśli chodzi o obiekt to tak jak mówiłem jest to pojedynczy element, egzemplarz klasy - utworzony podczas działania programu :
$jakiśObiekt = new JakaśKlasa();
Na przykład prosty przykład klasa :
class Auto
{
}
Taka klasa jest zgodna, poprawna z założeniami obiektowości PHP - lecz jak się pewnie domyślacie jej przydatność, funkcjonalność jest po prostu niemal zerowa. Z takiej kalsy możemy utworzyć obiekt :
$mojeAuto = new Auto;
Pojawienia się operatora new mówi kompilatorowi (parserowi), że ma do czynienia z próbą utworzenia nowego obiektu. Jeżeli chcemy sobie sprawdzić czy w ogóle cokolwiek się stało, wykonało wykonujemy instrukcję :
print $mojeAuto;
Spowoduje to wyświetlenie pewnego unifikalnego identyfikatora przypisanego danemu obiektowi, czyli :
Object id #1