poniedziałek, 13 maja 2013

Programowanie obiektowe


Programowanie zorientowane obiektowo (ang. Object Oriented Programmingpowstało w odpowiedzi na problemy pojawiające się w programowaniu strukturalnym. W tym pierwszym skupialiśmy się na funkcjach (funkcje wywołują funkcje, które też wywołują funkcje). Program zakodowany obiektowo jest zorganizowany wokół danych, a nie funkcji. Często OOP określa się jako dane kontrolujące dostęp do kodu.

Podstawowymi pojęciami w programowaniu obiektowym są klasy i obiekty. Klasa składa się ze zbioru zmiennych oraz zbioru metod. Pełni ona rolę wzorca dla obiektów. Obiekt jest instancją danej klasy – posiada cechy zdefiniowane przez jego klasę. Obiekt może przechowywać dane oraz wykonywać zadania.
Zbiór metod, które mogą być wykonane przez dany obiekt określa jego interfejs.

Programowanie obiektowe można porównać do zbioru obiektów, które poprzez wysyłanie komunikatów za pomocą metod mówią sobie nawzajem, co robić.  W praktyce wygląda to tak, że najpierw musimy zdefiniować daną klasę. Na jej podstawie możemy tworzyć obiekty czyli konkretne egzemplarze danej klasy.

[1] Najpierw tworzymy obiekt danej klasy za pomocą instrukcji
     $zmienna_obiektowa=new nazwa_klasy()

[2] Aby odwołać się do dowolnej składowej klasy należy użyć instrukcji :
     $nazwa_obiektu → nazwa pola
     lub
     $nazwa_obiektu → nazwa_metody(argumenty_metody);


Trzeba też wyjaśnić co się dzieje podczas tworzenia nowego obiektu lub jego niszczenia. Tutaj przychodzą z pomocą dwie metody, które nazywamy konstruktorami i destruktorami. Konstruktor jest specjalną metodą wywoływaną automatycznie podczas tworzenia obiektu danej klasy. Natomiast destruktor jest przeciwieństwem konstruktora – wykonuje niezbędne czynności podczas usuwania obiekt.

W języku PHP składowe danej klasy (pola i metody) muszą mieć określony sposób dostępu zdefiniowany za pomocą poniższych modyfikatorów :

[1] public – dostęp publiczny
[2] private – dostęp prywatny
[3] protected- dostęp chroniony


W pierwszym przypadku dostęp do danej składowej jest nieograniczony. W drugim przypadku dostęp do składowej jest ograniczony tylko do klasy, w której składowa została zdefiniowana. W ostatnim przypadku składowa jest dostępna z poziomu danej klasy oraz poziomu klas, które po niej dziedziczą.


Zwykle by móc używać składowych zdefiniowanych w danej klasy, musimy najpierw utworzyć obiekt dane klasy, a następnie go z tą klasą powiązać. Istnieje jednak szybszy sposób dostępu do metody danej klasy. Służy do tego słowo kluczowe static. W tym wypadku deklaracja będzie miała poniższą postać :


[1] specyfikator_dostępu static $nazwa_pola

[2] specyfikator_dostępu static function nazwa_metody(argumenty)



Powyższa deklaracja umożliwia dostęp do składowej statycznej za pomocą instrukcji :

[1] nazwa_klasy :: nazwa_pola

[2] nazwa_klasy :: nazwa_metody(argumenty)



Ostatnią cechą programowania obiektowego, które chcę przedstawić jest dziedziczene. Jeżeli klasa A odziedziczy cechy klasy B to mówimy, że klasa A jest klasą nadrzędną (ang. Superclass), natomiast klasa B jest klasą podrzędną (ang. Subclass). Klasa B jest wyspecjalizowaną wersją klasy A, ponieważ dziedziczy ona wszystkie pola i metody zdefiniowane w klasie nadrzędnej.





6 komentarzy:

  1. Programowanie obiektowe czyli inaczej mówiąc zorientowane obiektowo jest teraz stosowane wręcz wszędzie i w każdym z języków programowania. Bardzo często wykorzystywane są frameworki PHP jak np. Zend czy Symfony do programowania obiektowego. Firmy takie jak https://craftware.pl z powodzeniem wykonują projekty kodując je obiektowo.

    OdpowiedzUsuń
  2. Dziś najpopularniejsze jest programowanie zorientowane obiektowo i praktycznie każda aplikacja jest w taki sposób zbudowana. Systemy informatyczne są potrzebne https://www.connecto.pl/system-informatyczny-potrzebny-firmie/ gdyż świadczy o tym zapotrzebowanie.

    OdpowiedzUsuń
  3. Bardzo ważne na pewno są takie umiejętności kiedy chcemy mieć niezawodne systemy informatyczne w naszej firmie. Jak dla mnie również bardzo fajnie sprawdza się system CRM http://zarabianienaforex.pl/crm-narzedzie-do-usprawnienia-funkcjonowania-firmy/ który znacząco wpływa na usprawnienie działania całej firmy.

    OdpowiedzUsuń
  4. Akurat kiedy mówimy o samym programowaniu to dziś praktycznie najbardziej popularne jest programowanie obiektowe. Ja także niedawno miałem okazję przeczytać o maszynie wirtualnej https://www.thomas-it.pl/blog/czym-jest-maszyna-wirtualna-i-technologia-wirtualizacji i jestem przekonany, że jest to świetne rozwiązanie.

    OdpowiedzUsuń
  5. W moim przypadku bardzo dobrze sprawdzają się na co dzień napisane na zamówienie systemy IT. Jakiś czas temu zdecydowałem się na współpracę z firmą https://www.connecto.pl/ i to właśnie dzięki nim mogę używać doskonałych programów.

    OdpowiedzUsuń
  6. Ja również nigdy programowaniem się nie zajmowałem, ale muszę przyznać, że teraz myślę o tym aby stworzyć własną stronę internetową. Jednak jak przeczytałem wpis https://czas.tygodnik.pl/pl/639_materialy_partnera/9784_nie-oszczedzaj-na-tworzeniu-strony-internetowej---nie-warto.html to wiem już dokładnie, że nie wolno oszczędzać na tworzeniu strony www.

    OdpowiedzUsuń