Czym jest programowanie obiektowe

19/12/2022

4 minut czytania

Spotkamy się z nim w takich językach jak Java, Python czy C#. Obiektowość polega na modularyzowaniu, czyli dzieleniu kodu na części. Dziś odpowiemy na pytanie, czy programowanie obiektowe jest łatwe i porównamy programowanie obiektowe z proceduralnym.

Z nauką programowania obiektowego nie należy czekać zbyt długo. Na naszym kursie programowania w Codecool wprowadzamy je zazwyczaj po 3 miesiącu nauki. Gdyby zwlekać dłużej, później trudno by było wyzbyć się nawyków i przyzwyczajeń, które są sprzeczne z programowaniem obiektowym. Niezbędnym elementem nauki programowania obiektowego jest oczywiście teoria – można ją wykładać, ale nie każdy ją zrozumie. Dlatego w Codecool udostępniamy materiały z przykładami w różnych językach programowania i siadamy do pracy – dopiero działając, młodzi programiści dochodzą do momentu, w którym coś zaskakuje, wiedza układa się w całość i zaczynają się dobrze odnajdywać w obiektowości. Istota programowania obiektowego może być trudna do pojęcia dla początkujących programistów. By ją zrozumieć, trzeba najpierw zderzyć się z większym programem. Gdy piszemy prosty program, taki jak kalkulator, programowanie obiektowe nie będzie użyteczne – w przypadku prostych konsolowych programów, mogłoby nawet dołożyć nam pracy.

Definicja programowania obiektowego

W większości publikacji przeczytać można, że programowanie obiektowe pomaga nam programować, ponieważ w naszym kodzie możemy odzwierciedlać prawdziwe obiekty, występujące w rzeczywistości. Jest to tylko częściowo prawda. Jak twierdzi Robert Martin (w Internecie znany jako Uncle Bob), mentor programowania obiektowego i czystego kodu, powyższa definicja programowania obiektowego została stworzona przez marketingowców. Gdy opracowywano pierwsze języki obiektowe, specjaliści od marketingu stanęli przed zadaniem zachęcenia przełożonych do wsparcia takich prac. Ideę programowania obiektowego najprościej było wytłumaczyć właśnie w taki sposób: mówiąc, że obiektowość to odzwierciedlenie rzeczywistych obiektów w kodzie, co pozwoli szybciej programować, ergo przyniesie większe zyski.

O co więc tak naprawdę chodzi w programowaniu obiektowym? Czas na bardziej adekwatną, choć mniej chwytliwą i marketingową definicję. Programowanie obiektowe służy do tego, żebyśmy mogli modularyzować swój kod. Ale co to znaczy modularyzować? Już wyjaśniamy!

Modularyzowanie najprościej wytłumaczyć jako dzielenie kodu na małe “klocki” – o uniwersalnym kształcie, które można użyć w różnych miejscach. Z takich klocków możemy ułożyć dom, zamek lub samolot – czyli dowolny program, jaki nam się zamarzy.

Gdzie wykorzystuje się programowanie obiektowe?

Programowanie obiektowe sprawdza się wówczas, gdy pracujemy nad dużym projektem, najczęściej w zespole. Programowanie obiektowe pozwala lepiej podzielić się pracą, zdelegować napisanie części obiektów poszczególnym osobom w zespole, a następnie połączyć wszystkie elementy. System pisany obiektowo będzie bardziej zmodularyzowany, czyli będzie się składał z części. Jeżeli jedna z nich nie będzie działała dobrze, możemy ją po prostu wymienić.

W jakich językach programowania mamy do czynienia z programowaniem obiektowym? Najpopularniejszym językiem obiektowym jest obecnie Java. Choć kojarzymy ją głównie z obiektowością, możemy także napisać w niej program proceduralnie. Również Python jest językiem obiektowym, choć można go pisać proceduralnie. Z kolei język C jest związany ściśle z programowaniem proceduralnym. Obiektowość pojawiła się dopiero wraz z wprowadzeniem języka C++.

Przeczytaj również: Popularne języki programowania

Java

Java jest językiem, który bardzo spopularyzował programowanie obiektowe. Konsekwentnie podchodzi do tematyki obiektowości i w pełni ją implementuje – odbywa się to w zgodzie z teorią. Z jednej strony pozwala nam to na uzyskanie czystego, poprawnego pod względem obiektowości kodu. Dla niektórych programistów jednak, staje się to uciążliwe. Silenie się na pełną zgodność z obiektowością spowalnia ich pracę, więc krystalicznie czysty kod uznają oni za sztukę dla sztuki.

PHP

PHP jest językiem obiektowym, bo jest obiektem żartów – ten kawał ma już długą brodę, ale wciąż krąży wśród programistów. My jednak nie możemy się z nim do końca zgodzić. Fakt, PHP miał trudne początki z obiektowością – najpierw był językiem skryptowym, do którego dopiero zaczęto wprowadzać obiektowość, wzorując się na tym, jak jest to zrealizowane w Javie.

Python

Rozpoczynając programowanie w Pythonie, nie mamy za bardzo do czynienia z obiektowością – często krótsze programy piszemy, w ogóle jej nie wykorzystując. Python pod względem obiektowości podobny jest do PHP, są jednak pewne kwestie, na które trzeba uważać, przesiadając się np. z Javy na Pythona.

Przeczytaj również: Funkcje w Pythonie

C#

Język C# powstał w mocnej inspiracji Javą. Programiści, którzy stworzyli C#, cenili Javę, ale chcieli napisać taki język, który nie będzie zawierał źle zaprojektowanych funkcjonalności. Trzon, związany z programowaniem obiektowym jest tu bardzo podobny jak Javie. Pewne rzeczy inaczej się nazywają, ale jest dużo części wspólnych.

Sprawdź również: Czym jest .Net Framework?

JavaScript

Historia JavaScript podobna jest nieco do dziejów PHP – JavaScript również jest językiem, który powoli dochodził do obiektowości. W poprzednich wersjach JavaScript praktycznie jej nie było; długo zajęło jej rozwinięcie. Dopiero w 2015 roku wszedł standard ECMAScript, który na nowo zdefiniował język JavaScript i wprowadził do niego notację stricte obiektową. Dopiero niedawno przeglądarki zaczęły wspierać ten standard. Programiści JavaScript odczuwali brak obiektowości i już wcześniej zaczęli sobie z tym radzić – powstawały więc tzw. nadzbiory języka JavaScript, takie jak stworzony przez Microsoft TypeScript, który wprowadził do JavaScriptu obiektowość podobną do tej znanej np. z C#.

Zainteresuje Cię również: JavaScript od podstaw

Programowanie obiektowe a strukturalne

Zanim powstało programowanie obiektowe, powszechnie funkcjonowało programowanie proceduralne (strukturalne). Programowanie często polegało wówczas na kopiowaniu i wklejaniu fragmentów kodu, przez co kod ten był dużo bardziej zagmatwany. Programowanie proceduralne występowało m.in. w języku C. W tym momencie, gdy programujemy obiektowo, fragmenty naszego systemu pakujemy w klocki, które spełniają takie funkcje, jakie powinny – nie musimy się w to zagłębiać. My tylko łączymy je w całość. Gdy jeden nam się nie sprawdzi, możemy wymienić go na inny. W programowaniu proceduralnym nie było to takie proste i przypominało operację na otwartym sercu.

Podsumowanie

Teoria programowania obiektowego jest uniwersalna dla wszystkich języków programowania. Paradygmat programowania obiektowego nie jest do końca związany z samym językiem – jak pokazaliśmy, programowanie proceduralne nadal występuje i to w największych językach, kojarzonych głównie z obiektowością. Nie da się więc pozostać przy nauce tylko jednego sposobu programowania – do prostych programów wybierzemy programowanie proceduralne, a do większych i bardziej skomplikowanych  projektów – obiektowe.

O nas

Codecool to miejsce, w którym zaczyna się Twoja kariera w IT. Daj się pokierować naszym profesjonalnym mentorom, skorzystaj z gwarancji pracy i odroczonej płatności.
Masz pytanie? Możemy pomóc! Podrzuć nam emaila na [email protected], albo napisz do nas na Facebooku.

Powiązane posty

Zarządzanie czasem i zadaniami: kluczowe umiejętności miękkie do osiągnięcia sukcesu w kodowaniu
Nie tylko umiejętności techniczne wyróżnią Cię...
Twój pierwszy tydzień w Codecool
Twój pierwszy tydzień w Codecool będzie...
TOP 25 zawodów przyszłości w IT: jak rozpocząć karierę
Branża technologiczna rozkwita i generuje ogromną...

Add meg elérhetőséged, és hamarosan visszahívunk!