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