Wprowadzenie do programowania obiektowego

Programowanie obiektowe dla początkujących

Na czym polega programowanie obiektowe ?

Programowanie obiektowe polega na opisywaniu świata rzeczywistego przy użyciu obiektów.

Załóżmy, że 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:

Programowanie obiektowe - wprowadzenie
Każdy z tych uczniów w świecie programowania będzie osobnym obiektem. Mamy więc trzy obiekty: Uczeń 1, Uczeń 2, Uczeń 3. Każdy z uczniów posiada: imię, nazwisko, wzrost, waga, wiek, ulubiony przedmiot, chodzi do określonej szkoły i może się też przedstawić.

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ć, że 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 właściwości: ulubiony przedmiot i szkoła, a klasa Student właściwości: kierunek studiów i uczelnia.

Zauważmy, że 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.

Programowanie obiektowe Klasa bazowa Osoba

Załóżmy, że 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.

Artykuł ten powstał na podstawie jednego z rozdziałów z książki do nauki programowania: Elementarz młodego programisty Język C++.

W kolejnych rozdziałach pokazane jest, jak definiować klasy, tworzyć obiekty, korzystać z dziedziczenia  przy użyciu  języka programowania C++.

Co nam daje nauka języka programowania C++ ?

C++ jest jednym z najpopularniejszych języków programowania. Jest to język bardzo uniwersalny.

Ma swoje zastosowanie wszędzie tam, gdzie liczy się wydajność, niskie zużycie zasobów, szybkość działania programu oraz optymalizacja dużej ilości danych.

Możemy w nim tworzyć oprogramowanie między innymi do samochodów (systemy ABS, układy sterujące pracą silnika), 

Programowanie w języku C++

urządzeń medycznych  (EKG), urządzeń gospodarstwa domowegourządzeń do obsługi placówek bankowych (bankomaty) i wielu innych.

W języku C++ możemy pisać również aplikacje desktopowe, czyli takie, które uruchamiamy z pulpitu komputera. Mogą to być systemy bazodanoweprogramy biurowebankowe.  Do najbardziej znanych należą programy Adobe PhotoshopAdobe Acrobat Reader, pakiet biurowy OfficeGoogle Earth, przeglądarki internetowe: Mozilla FirefoxMicrosoft Internet ExplorerGoogle Chrome.

Wreszcie w tym języku możemy pisać gry komputerowe. Większość komercyjnych gier jest napisana właśnie w języku C++  (Wiedźmin, Assassin’s Creed, Far Cry, Watch Dogs, Just Dance, Rainbow Six, World of Warcraft, Starcraft, Doom III, Master of Orion III, Warcraft III, Diablo I, Diablo II). Między innymi w tym języku są napisane silniki do gier (Unreal engine, AAA). Język C++ znalazł też swoje zastosowanie w technologii VR (Virtual Reality).

Ostatnio coraz bardziej popularny stał się „internet rzeczy”. Inteligentne urządzenia są coraz częściej wykorzystywane między innymi w budownictwie (inteligentne domy). C++ ma tu też swoje zastosowanie.

W C++ zostały napisane systemy operacyjne takie jak: Windows, Apple Mac OS X, iPAD OS, Apple iPhone iPod Touch, Google Chrome OS, Symbian OS. W języku tym tworzone jest również oprogramowanie dla serwerów.

C++ wykorzystywany jest w największych światowych firmach (Apple, Adobe, Facebook, Amazon, Ericsson, HP, IBM, Intel).

Dlaczego warto uczyć dzieci programowania ?

Dlaczego warto uczyć dzieci programowania

Nauka programowania wpływa pozytywnie na ogólny rozwój dzieci. Pomaga kształtować charakter jak i umiejętności, które mogą się przydać w przyszłości.

Programowanie pozwala odkrywać talenty u dzieci, rozwijać ich uzdolnienia i pasje.

Pisanie własnych programów to proces twórczy, który wymaga poszukiwania nowych rozwiązań,  odkrywania nowych ścieżek, podążania za innowacyjnymi pomysłami. Uczy myślenia logicznego, rozwija takie cechy jak kreatywność i ciekawość świata.

Programowanie to także ćwiczenie charakteru: uczy cierpliwości i wytrwałości w dążeniu do celu. Pokonywanie trudności dodaje wiary w siebie i własne możliwości. Każdy zrealizowany projekt daje wiele radości i satysfakcji.

Technologie informatyczne są obecne w prawie każdej dziedzinie życia: od medycyny, poprzez budownictwo, biznes, branżę motoryzacyjną, telekomunikacyjną i wiele innych. Zapotrzebowanie na programistów stale rośnie na całym świecie. Umiejętność programowania daje nam szansę na znalezienie atrakcyjnej pracy z satysfakcjonującym wynagrodzeniem.

 

Dlaczego warto rozpocząć naukę programowania z Elementarzem młodego programisty ?

 
Książka jest napisana przystępnym językiem, zawiera liczne przykłady. Każda lekcja poświęcona jest odrębnemu zagadnieniu. Jest to książka dla osób początkujących: dzieci, młodzieży, studentów.
Zawiera takie zagadnienia:
  • wprowadzenie do programowania – wyjaśnienie podstawowych pojęć: biblioteka programistyczna, kompilacja, linkowanie, kod źródłowy…
  • biblioteka iostream (cout, cin), zmienne, typy,
  • instrukcje warunkowe i pętle, operatory,
  • tablice, referencje, wskaźniki
  • tworzenie własnych funkcji
  • elementy programowania obiektowego: wprowadzenie do tematu, klasy, struktury, unie, dziedziczenie, polimorfizm.
Wszystkie tematy są napisane w prosty i zrozumiały sposób. Każda linijka kodu jest opatrzona komentarzem wyjaśniającym, jak działa. Książka dodatkowo zawiera ilustracje do niektórych zagadnień, aby można było sobie wyobrazić ich działanie na przykładzie z życia codziennego.

Ilustracja z książki do zagadnienia: tablice.