Na czym polega programowanie obiektowe ?
Programowanie obiektowe polega na opisywaniu świata rzeczywistego przy użyciu obiektów.
Załóżmy, iż mamy za zadanie napisać program zawierający informacje dotyczące uczniów w pewnym mieście.
Wybierzmy sobie trzech uczniów, każdy ma pewne cechy indywidualne: imię, nazwisko, wzrost, waga, wiek, ulubiony przedmiot, chodzi do określonej szkoły. Każdy może wykonywać pewne czynności np. uczeń może się przedstawić. Zobaczmy to na schemacie poniżej:
Np.
Uczeń 1 powie: „Mam na imię Roksana, mam 12 lat”
Uczeń 2 powie: „Jestem Julian Kowalski, mam 11 lat”
Cechy i zachowania (czynności), które mają te obiekty, są wspólne i możemy je pogrupować w jeden szablon. Taki szablon nazywamy klasą.
Klasa dla naszych obiektów: Uczeń 1, Uczeń 2, Uczeń 3 będzie wyglądać następująco:
Możemy zatem powiedzieć, iż klasa to zestaw pewnych cech (właściwości) i czynności (funkcji) opisujących obiekty.
Programowanie obiektowe: obiekt i klasa
Obiektem w świecie rzeczywistym może być konkretny przedmiot, osoba, zwierzę, zjawisko, które posiada własne cechy, i może wykonywać pewne czynności np. Opel Astra 4 z silnikiem diesla, telefon komórkowy Samsung Galaxy S6, student Jan Kowalczyk, uczennica Maria Szymańska, kot o imieniu Stefan itp.
Klasą zaś w świecie rzeczywistym jest odpowiednio: samochód, telefon komórkowy, student, uczeń, kot.
Programowanie obiektowe: dziedziczenie
Wróćmy teraz do naszej klasy Uczeń. Stwórzmy kolejną klasę o nazwie Student. Mamy zatem dwie klasy przedstawione na schemacie poniżej:
Obie te klasy mają cechy i czynności wspólne. Są to cechy: imię, nazwisko, wzrost, waga, wiek i czynność: przedstaw się.
Każda z tych klas ma swoje cechy indywidualne. Klasa Uczeń posiada adekwatności: ulubiony przedmiot i szkoła, a klasa Student adekwatności: kierunek studiów i uczelnia.
Zauważmy, iż cechy takie jak imię, nazwisko, wzrost, waga, wiek nie dotyczą tylko ucznia, czy studenta, ale określają wszystkie osoby. Cechy te możemy zapisać w postaci jednej wspólnej klasy o nazwie Osoba.
Załóżmy, iż w naszym programie, chcemy stworzyć więcej obiektów, nie tylko klasy Uczeń i Student, ale i Taksówkarz, Programista czy Malarz. Definiując te klasy, zamiast w każdej z nich pisać wiele razy te same cechy i czynności, możemy skorzystać z klasy Osoba (odziedziczyć po niej wspólne składniki) i dopisać w każdej z klas jedynie składniki wyróżniające je. Możemy to zobaczyć na poniższym schemacie
Klasa, po której dziedziczymy składniki, nazywamy klasą bazową. A klasy, które dziedziczą po klasie bazowej, nazywamy klasami pochodnymi.
Podsumowanie
Programowanie obiektowe nie jest takie skomplikowane, jak się początkowo wydaje. Najtrudniejsze jest zrozumienie czym jest klasa i obiekt oraz na czym polega dziedziczenie. Ten krok mamy już za sobą. Możemy teraz przejść do poznawania zasad tworzenia klas i obiektów w konkretnym języku programowania.
W kolejnych rozdziałach pokazane jest, jak definiować klasy, tworzyć obiekty, korzystać z dziedziczenia przy użyciu języka programowania C++.