Znajdź impuls do nauki </programowania>     |        -50% na wszystkie kursy     |       Jeszcze przez:

3 dni 04 godzin
close
Cart icon
User menu icon
User icon
Skontaktuj się z nami:
+48 888-916-333
Lightbulb icon
Jak to działa?
FAQ icon
FAQ
Contact icon
Kontakt
Terms of service icon
Regulamin zakupów
Privacy policy icon
Polityka prywatności
Wprowadzenie do programowania obiektowego

Programowanie obiektowe - na czym to polega?

Programowanie obiektowe to tzw. paradygmat programowania, czyli sposób w jaki podchodzimy do tworzenia kodu. Czasami spotkać się możesz z określeniem OOP czyli Object Oriented Programming (Programowanie Zorientowane Obiektowo). Chodzi dokładnie o to samo.

Poznaj fundamenty OOP: Interaktywny kurs z ćwiczeniami

W programowaniu obiektowym cała struktura programu jest oparta o obiekty, które komunikują się ze sobą. Każdy obiekt reprezentuje jakąś część programu. Wyobraź sobie, że piszesz aplikację umożliwiającą tworzenie oraz publikowanie artykułów. Jakie obiekty będą ci potrzebne?

Na pewno będzie potrzebny obiekt reprezentujący artykuł. Na pewno będzie potrzebny obiekt reprezentujący autora. Być możesz przydadzą się kolejne obiekty np. kategoria artykułu itp. W praktyce, w rozbudowanej aplikacji, takich obiektów mogą być dziesiątki albo i setki.

Nasz finalny program będzie po prostu zbiorem różnych obiektów, które mogą się ze sobą komunikować w celu osiągnięcia pożądanego celu.

Dzięki takiemu podejściu możemy łatwo odwzorować obiekty ze świata, który nas otacza. Każdy element programu możemy sobie wyobrazić jakie pewien obiekt.

Koncepcje

Rozwińmy teraz temat obiektów. Każdy obiekt będzie posiadał swoje cechy, które często nazywamy atrybutami. Obiekt artykułu będzie posiadał takie atrybuty jak tytuł, treść czy data utworzenia. Z kolei obiekt autora może posiadać takie atrybuty jak imię, nazwisko czy adres email.

Druga ważna koncepcja to zachowania, które w programowaniu obiektowym często nazywamy metodami. Nasz obiekt artykułu może posiadać takie zachowania jak: utwórz, opublikuj czy edytuj.

Jak widzisz nie ma w tym nic specjalnie trudnego. Musisz po prostu myśleć w kategoriach obiektów. Musisz każdą część programu wyobrazić sobie jako obiekt, który posiada atrybuty (cechy) oraz metody (zachowania).

Klasy oraz instancje

Większość obiektowych języków programowania bazuje na tzw. klasach oraz instancjach. Klasa to wzorzec, według którego tworzymy instancje czyli konkretne obiekty. Jeszcze raz odwołajmy się na do naszego przykładu.

“Artykuł” to klasa czyli wzorzec, na podstawie którego tworzymy instancje. Z kolei “Wprowadzenie do programowania obiektowego” to instancja czyli obiekt klasy Artykuł.

Spójrz teraz na przykładową klasę:


Artykuł
    atrybuty
        tytuł
        treść
        data_utworzenia

    zachowania (metody)
        utwórz()
        opublikuj()
        edytuj()


Mamy klasę Artykuł, która określa dostępne atrybuty oraz zachowania. Każda instancja (obiekt) tej klasy będzie mieć dostęp do tych atrybutów oraz zachowań. Każdy artykuł będzie więc posiadać swój tytuł, treść itd. Każdy artykuł będzie można opublikować, utworzyć itd.

W taki sam sposób można utworzyć kolejne klasy niezbędne w naszej aplikacji. Potraktuj to jako ćwiczenie. Pomyśl o tym, jakie klasy będą nam jeszcze potrzebne? Jakie będą one posiadać atrybuty oraz metody? Cała filozofia programowania obiektowego sprowadza się głównie do odpowiedniego projektowania klas.

Zalety

Programowanie obiektowe przez wiele lat było wręcz dominującym podejściem do pisania kodu. W wielu sytuacjach jest to najbardziej naturalne podejście do problemu projektowania architektury aplikacji. Sposób, w jaki dzielimy aplikację na obiekty, dość dobrze odzwierciedla nasz naturalny tok myślenia. Często mamy tendencję do opisywania świata w postaci obiektów, które mają swoje określony cechy.

  • Programowanie obiektowe umożliwia podzielenie złożonego systemu na mniejsze, łatwiejsze do zrozumienia elementy.
  • Programowania obiektowe umożliwia podział kodu na moduły, które z kolei umożliwiają wielokrotne wykorzystanie tego samego kodu.
  • Programowanie obiektowe pozwala wprowadzić standaryzację, a ta z kolei umożliwia łatwiejszą pracę zespołową.

Minusy

Żeby nie było zbyt różowo, to warto też wspomnieć o pewnych wadach obiektowego podejścia.

Niektóre programy są dość proste: wykonują kilka, niezbyt złożonych operacji. W takiej sytuacji programowanie obiektowe często skutkuje przerostem formy nad treścią. Nie ma sensu bawić się w projektowanie złożonych klas, jeśli nasz program ma wykonywać jakieś proste operacje.

Żeby obiektowe podejście do programowania miało sens, to musi być ono stosowane rozsądnie. Łatwo można wpaść w tą pułapkę “przerostu formy nad treścią”. W praktyce objawia się ona nadmiernie skomplikowanych kodem, który jest trudny w utrzymaniu oraz podatny na błędy.

Są pewne zastosowania, które naturalnie predysponują programowanie obiektowe. Na przykład programowanie interfejsów użytkownika (UI). Są też zastosowania, w których obiektowe podejście nie jest najlepszym wyborem. W dużej mierze jest to kwestia doświadczenia programisty. Trzeba do wszystkiego podejść z głową i dobrze rozważyć wady oraz zalety danego podejścia.

Praktyka

Sama koncepcja programowania obiektowego sięga późnych lat 60. Istnieje bardzo dużo języków programowania, które umożliwiają obiektowe podejście do pisania kodu.

Wśród najpopularniejszych należy wymienić Java, C#, C++, PHP, JavaScript czy Python. Sam język to sprawa drugorzędna. Programowanie obiektowe opiera się na pewnych regułach oraz zasadach. I to one są tu najważniejsze. Te reguły oraz mechanizmy są w dużym stopniu uniwersalne i mogą być zastosowane w różnych językach.

Poznaj fundamenty OOP: Interaktywny kurs z ćwiczeniami