Programowanie obiektowe ma na celu usprawnienie pracy programistów. Dzięki niemu łatwiejsze stają się pisanie i konserwacja programów. Mogą być też one wielokrotnie używane – w całości lub fragmentarycznie. Programowanie obiektowe, nieważne czy w Java, PHP, Pythonie, Scali, czy C++ jest o wiele bardziej intuicyjne od programowania proceduralnego. Dzieje się tak, dlatego że programowanie obiektowe ma na celu odzwierciedlać rzeczywistość. Ludzki mózg jest bardzo dobrze przystosowany do przetwarzania informacji właśnie w taki sposób.
Czym jest programowanie obiektowe? Co to jest obiekt i klasa?
Koncepcja programowania obiektowego wywodzi się z języka programowania przeznaczonego do zastosowań symulacyjnych (Simula 67). Ten rodzaj programowania był kluczowy już w połowie lat 80. ubiegłego wieku przy użyciu języka C++. Programowanie obiektowe to paradygmat programowania, którego założeniem jest tworzenie aplikacji tak, aby jak najlepiej odzwierciedlała rzeczywistość. Programowanie obiektowe wyrażane jest też w czterech kluczowych cechach: abstrakcja, polimorfizm, hermetyzacja i dziedziczenie. Aby wyjaśnić cechy programowania obiektowego, należy zapoznać się z pojęciami klasy i obiektu .
Tworzony program składa się z obiektów. Oznacza to, że programista pracuje w kodzie na konkretnych obiektach. Do obiektów przypisywane są pola (informacje o obiekcie) oraz metody (operacje), jakie można wykonać na obiekcie. Jeśli programista tworzy aplikację do zdalnej obsługi urządzeń RTV i AGD, to w tym przypadku obiektami są: telewizor, głośniki, zmywarka itd. Do konkretnych obiektów przypisane są pola – informacje m.in. o kolorze, producencie, ale też aktualnym stanie urządzenia (np. włączone lub wyłączone). Jedno pole to jedna informacja o obiekcie. W przypadku metod zawarte są konkretne operacje, które możemy wykonać. W omawianym przykładzie może to być włączenie telewizora lub zwiększenie poziomu głośnośności odtwarzanej z głośnika muzyki.
W programowaniu obiektowym występuje również pojęcie klasy . Obiekt jest instancją klasy. Co to oznacza w praktyce? Klasa jest ogółem, a obiekt to już konkretny przypadek. Klasa powinna zawierać pola (informacje) i metody (czynności, jakie można wykonywać). Obiekt przynależy do danej klasy i zawiera konkretniejsze informacje oraz metody. Jeśli klasą jest telewizor, to w tym przypadku trzeba go traktować jako urządzenie RTV. Jeśli jednak telewizor ma być obiektem, to należy go uważać za konkretny przypadek – model od danego producenta, o konkretnej przekątnej ekranu itd. Warto wiedzieć, że do jednej klasy może przynależeć wiele obiektów.
Cechy programowania obiektowego
Cztery ważne cechy programowania obiektowego to: abstrakcja, hermetyzacja, polimorfizm i dziedziczenie. Abstrakcja ma na celu ułatwienie rozwiązywania problemu. Hermetyzacja zaś prowadzi do wyodrębnienia interfejsu i zmniejszenia ryzyka powstawania błędów w tworzonym modelu. Polimorfizm to mechanizmy, które umożliwiają programiście korzystanie z wartości i zmiennych na różne sposoby. Z kolei dziedziczenie wspomaga polimorfizm. Jest to mechanizm, dzięki któremu klasy mogą współdzielić atrybuty oraz zachowania. Klasa dziedziczy je po innej klasie, jednocześnie zachowując swoje odrębne funkcjonalności.
W programowaniu obiektowym można wyróżnić dwa jego typy: programowanie oparte na klasach oraz programowanie oparte na prototypach. W pierwszym przypadku mamy zatem klasę, a następnie tworzone są obiekty pasujące do konkretnej klasy. W drugim zaś nie ma w ogóle klas. Nowe obiekty są tworzone na podstawie już istniejących – powstaje prototyp, który dziedziczy od pierwotnego obiektu pola i metody, ale jednocześnie może otrzymywać nowe dane i operacje.
Języki programowania a programowanie obiektowe
Obiektowy język programowania to taki, który umożliwia programiście stosowanie obiektowych metod programowania. Wśród nich są m.in.: Java, Eiffel oraz Python – są to języki, za pomocą których można programować obiektowo. Jednak mogą też występować elementy programowania proceduralne. Do programowania obiektowego można używać również języków C++ i C#. Kolejnym językiem programowania wartym uwagi jest Scala. Łączy ona cechy programowania funkcyjnego i obiektowego. W tym przypadku programista może korzystać z klas napisanych w Javie. Programować obiektowo można również w PHP – języku programowania służącym do generowania stron internetowych i tworzenia aplikacji webowych.
Autor: Redakcja Dzień Dobry TVN