Cele lekcji
Po zakończeniu tej lekcji…
- Poznasz najważniejsze aspekty programowania obiektowego.
- Dowiesz się, jak określać klasy/obiekty wymagane w swoim programie.
- Będziesz znać różnicę między klasą a obiektem.
Na czym polega programowanie obiektowe?
Odpowiedzi na to pytanie poświęcono już wiele książek,
jednak najważniejszym wyznacznikiem programowania obiektowego jest to, że program stara się naśladować otaczającą nas rzeczywistość, traktując elementy programistyczne jako obiekty, którym odpowiadają one w prawdziwym świecie.
Jeśli więc piszesz program dla banku, twoimi klasami/obiektami będą na przykład klienci, rachunki, depozyty, wypłaty, czeki, pożyczki i tym podobne.
Oczywiście istnieją inne wyznaczniki programowania obiektowego, ale nimi zajmiemy się, gdy już stworzymy część gry. Teraz wystarczy, że zapamiętasz ten jeden wyznacznik.
Czym są klasy/obiekty w naszej grze?
Obiekty w grze można w prosty sposób określić, opisując wszystkie działania programu i podkreślając wszystkie rzeczowniki. Nasz gra ma zawierać następujące działania:
- Gracz może przechodzić do lokacji.
- Przejście do lokacji może wymagać posiadania odpowiednich przedmiotów.
- W lokacji może być dostępne zadanie.
- Aby ukończyć zadanie, gracz musi zebrać wymagane przedmioty i oddać je.
- Gracz zbiera przedmioty, idąc do lokacji i walcząc tam z potworami.
- Gracz walczy z potworami za pomocą broni.
- Podczas walki gracz może używać mikstur leczniczych.
- Gracz otrzymuje łupy za pokonanie potwora.
- Po zrealizowaniu zadania gracz otrzymuje nagrody.
Rzeczowniki (czyli klasy/obiekty) w naszej grze będą następujące:
- gracz,
- lokacja,
- przedmiot,
- zadanie,
- potwór,
- broń,
- mikstura.
Przyda się jeszcze kilka innych, ale na początek te wystarczą.
Czym się różni klasa od obiektu?
Klasa to taki plan obiektu.
Definiuje ona obiekt, ale sama nim nie jest.
Przypomnij sobie czasy sesji w Dungeons & Dragons, kiedy bohaterowie byli opisywani na kartce papieru.
Na pustej karcie bohatera wpisywało się imię, klasę, poziom, punkty doświadczenia, atrybuty, zbroję, bronie, przedmioty, umiejętności, czary i inne. Żeby utworzyć bohatera, należało uzupełnić te informacje, bez nich była to zwykła kartka z odpowiednimi rubrykami (klasa).
Wpisanie odpowiednich informacji pozwalało na stworzenie bohatera (obiekt).
Aby mój przykład był bardziej namacalny, możesz sobie wyobrazić, że plan architektoniczny domu to klasa (zawiera wszystkie informacje o tym, jak dom będzie wyglądał). Gdy budowlańcy postawią dom, wykorzystując do tego materiały takie jak drewno, stal i beton, zbudują oni dom na podstawie planu i powstanie rzeczywisty budynek (obiekt).
Podsumowanie
Programiści często mówią, że „Programu nie pisze się po to, żeby odczytał go komputer, tylko po to, żeby odczytał go programista”.
Znaczy to, że program ma być na tyle łatwy do zrozumienia, aby programiści w przyszłości (np. Ty) mogli go szybko i sprawnie naprawić lub zmodyfikować.
Jedną z najbardziej wymagających kwestii podczas programowania jest śledzenie wszystkich działań, dlatego uzmysłowienie sobie, że obiekty w programach mogą mieć swoje odpowiedniki w rzeczywistości bardzo ułatwia ogarnięcie całego zakresu wszystkich czynności.