Klasy i obiekty
2017-03-08 / Krzysztof Kozłowski

Co to jest klasa, co to jest obiekt? Jaka jest różnica pomiędzy klasą a obiektem?

Klasa a obiekt

Zastanawiając się, co to jest klasa, zaczęliśmy od uzmysłowienia sobie tego, czym są obiekty. Powiedzieliśmy sobie, że obiekty to wszystko, co nas otacza. Np. drzewo, telewizor, samochód itd.

Pisząc program będziemy próbowali odwzorować otaczające obiekty w naszym komputerowym świecie, czyli w naszym programie. Jeśli będziemy chcieli stworzyć program do sterowania samochodem, musimy najpierw ten samochód sobie „wyprodukować”. I żeby to zrobić, musimy mieć przepis na to, jak taki samochód wykonać. Klasa to właśnie taki przepis (szablon) na tworzenie obiektów.

W klasie opisującej np. samochód zawarte będą wszystkie informacje, opisujące konkretny egzemplarz naszego samochodu. Celowo mówimy o konkretnym egzemplarzu, bo mając przepis na produkcję samochodów, będziemy produkować ich wiele tak samo, jak wiele samochodów produkuje fabryka, choć też w komputerze ma tylko jeden przepis. I dokładnie tak samo, jak mając tylko jeden przepis na ciasto, możemy upiec wiele ciast, korzystając z tego przepisu.

Tak więc konkretny egzemplarz klasy to obiekt. Mając tylko jedną klasę potrafimy wyprodukować wiele różnych obiektów tego samego typu (czyli tej samej klasy). Często używa się takiego mądrego słowa “instancja“ i mówi się, że obiekt to instancja danej klasy, czyli konkretny egzemplarz danej klasy.

Napisałem powyżej, że w klasie opisującej samochód będą wszystkie informacje, opisujące ten samochód. Jakie to będą informacje? Np. liczba drzwi, kolor, rodzaj paliwa, numer rejestracyjny. Informacje te nazywać będziemy polami klasy i zwyczajowo na diagramie będą one znajdować się w górnej jego części, tuż pod nazwą klasy.

Oprócz pól w klasie zapisane będą czynności, które nasz obiekt będzie potrafił zrobić albo precyzyjniej które my będziemy w stanie wykonać na naszym obiekcie. Jakich czynności możemy oczekiwać w przypadku samochodu? Np. możliwości włączenia silnika, opuszczenia szyb. W aucie musi się dać włączyć światła, otworzyć drzwi i klapę bagażnika itd. Nasz samochód będzie potrafił tylko to, co sami wcześniej wymyślimy.

Czynności i akcje, które będziemy potrafili wykonać na obiekcie nazywamy fachowo metodami klasy, a na diagramie umieszczać je będziemy w dolnej części, pod listą pól.

Jak zapewne zauważyliście, na powyższym diagramie po nazwach metod występują nawiasy (), np. włącz_silnik(). Nawiasy to też taki programistyczny zwyczaj, by łatwo odrożnić nazwy pól od nazw metod. Widząc nawiasy programista od razu wie, że ma do czynienia z nazwą metody, a nie pola.

Druga ważna rzecz: nazwy pól to rzeczowniki, nazwy metod to czasowniki. To nie przypadek. Pola to informacje, które coś pamiętają. Stąd używamy dla nich rzeczowników. Metody to czynności i akcje, które możemy wykonać na obiekcie, stąd często nazwy metod pochodzą właśnie od czasowników. Taki sposób nazewnictwa ułatwia poruszanie się w kodzie programu i pozwala uniknąć w przyszłości wielu różnych problemów.

PermaLink: https://java.kozlowski.photos/2017/03/klasy-i-obiekty/