Wstęp do programowania obiektowego Język programowania obiektowego a język programowania strukturalnego Język programowania obiektowego to typ języka programowania, w którym programista tworzy moduły programowe (obiekty zawierające dane i procedury manipulowania tymi danymi), a kod programu tworzy przez operowanie obiektami i tworzenie powiązań między nimi. Język programowania strukturalnego (inaczej język algorytmiczny) to typ języka programowania, w którym programista, tworząc kod programu, nie operuje na obiektach, lecz tworzy kod programu linijka po linijce, pisząc procedury i funkcje. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) — metodyka tworzenia programów komputerowych, która definiuje programy za pomocą obiektów — elementów łączących stan (czyli dane) i zachowanie (czyli procedury, tu: metody). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań. Podejście to różni się od tradycyjnego programowania proceduralnego, gdzie dane i procedury nie są ze sobą bezpośrednio związane. Programowanie obiektowe ma ułatwić pisanie, konserwację i wielokrotne użycie programów lub ich fragmentów. Zastosowanie programowania obiektowego Techniki programowania obiektowego wykorzystywane są przez programistów do konstruowania większych programów, wykorzystujących przede wszystkim rozbudowany interfejs graficzny. Tak stworzone programy operują na obiektach. Koncepcja obiektów jako składowych programu wyrosła z potrzeby modelowania podmiotów świata rzeczywistego na użytek symulacji komputerowej. Każdy obiekt charakteryzuje się pewnym zachowaniem, które będzie modelowane, jak również pamięta opisujące go pewne informacje. Obiekt a klasa W wyniku programowania obiektowego powstają programy utworzone z użyciem obiektów i klas. Obiekt to podstawowy element programu łączący opis stanu pewnej cząstki rzeczywistości (czyli dane obiektu) z jej zachowaniem (czyli funkcjami obiektu). Inaczej mówiąc obiekt jest zestawem podprogramów i danych. W programowaniu obiektowym dane obiektu nazywa się polami, a podprogramy – metodami. A zgrupowanie pól i metod w jednej strukturze danych, czyli w obiekcie nazywa się hermetyzacją. Klasa to złożony typ będący opisem (definicją) pól i metod obiektów do niej należących.. Inaczej mówiąc obiekty są elementami składowymi klas. Na podstawie wspólnych cech obiekty wchodzą ze sobą w interakcje i na tej podstawie grupujemy je w klasy. Języki z cechami obiektowości – C++ - historycznie rzecz biorąc jest językiem proceduralnym, wzbogaconym o elementy obiektowości; – Java - zaprojektowany głównie do programowania obiektowego, ale posiadający także pewne elementy proceduralności; – JavaScript; – PHP ; – Visual Basic. Cechy obiektowego języka programowania Powszechnie uważa się, że najważniejsze są następujące cechy: • dziedziczenie, które polega na przypisywaniu tworzonej klasie wszystkich cech i zachowań klasy istniejącej • abstrakcja - każdy obiekt w systemie służy jako model abstrakcyjnego "wykonawcy", który może wykonywać pracę, opisywać i zmieniać swój stan, oraz komunikować się z innymi obiektami w systemie, bez ujawniania, w jaki sposób zaprogramowano dane cechy • polimorfizm (wielopostaciowość) – dla jednej metody określonej przez wspólny nagłówek istnieje wiele postaci treści tej metody • enkapsulacja (hermetyzacja) - zapewnia, że obiekt nie może zmieniać stanu wewnętrznego innych obiektów w nieoczekiwany sposób Źródła: Informatyka cz.2, podręcznik, wyd. WSiP www.wikipedia.pl Przykłady obiektu w języku Pascal W języku Pascal funkcjonują przykłady obiektu (typu obiektowego). Jednym z nich jest obiekt żółwia, który jest modelem z języka Logo, dysponujący metodami tzw. grafiki żółwia. Żółw jest abstrakcyjnym kursorem graficznym, który ma pisak, potrafi się poruszać i pamięta dane o swoim bieżącym położeniu na ekranie graficznym. Położenie to jest określone przez współrzędne punktu (x,y) oraz kierunek ustawienia żółwia. W języku Pascal obiekt jest złożoną strukturą danych o ustalonej liczbie składowych. Są nimi pola i metody. Pola mogą być różnych typów, także strukturalnych. Metody zaś są procedurami lub funkcjami i określają czynności wykonywane na obiekcie lub przez obiekt. Typ obiektowy nazywamy klasą, a zmienną typu obiektowego obiektem. Definicja klasy w języku Pascal ma postać: type nazwaKlasy=object … end; i może wystąpić tylko w bloku programu lub w interfejsie modułu. Jeśli definicja klasy znajduje się w programie, to deklaracje metod z tej klasy podaje się w tekście programu po tej definicji. Jeśli definicja klasy znajduje się w module, to deklaracje metod z tej klasy podaje się w treści modułu, czyli po słowie implementation. Przetestuj przykład obiektu w języku Pascal na programie NKaty ☺ Ćwiczenie Uruchom program NKaty i tak go zmodyfikuj, aby rysował piramidę złożoną z kwadratów. Przyjmij, że liczba kwadratów w podstawie piramidy oraz długość boku kwadratu są stałymi w programie. ☺