To tylko jedna z 10 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
Programowanie obiektowe Wstęp 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. Programowanie obiektowe a rzeczywistość Formie w programowaniu obiektowym odpowiada Klasa , materii - instancja - obiekt . Jest to najbardziej naturalny sposób rozumienia rzeczywistości - podstawową cechą mózgu ludzkiego jest klasyfikacja - łączenie występujących w rzeczywistości obiektów w grupy - klasy . Podstawowe założenia paradygmatu obiektowego Cechy języków programowania, które czynią je obiektowymi: 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 zaimplementowano dane cechy. Enkapsulacja - Czyli ukrywanie implementacji, hermetyzacja. Zapewnia, że obiekt nie może zmieniać stanu wewnętrznego innych obiektów w nieoczekiwany sposób. Tylko wewnętrzne metody obiektu są uprawnione do zmiany jego stanu. Polimorfizm - Referencje i kolekcje obiektów mogą dotyczyć obiektów różnego typu, a wywołanie metody dla referencji spowoduje zachowanie odpowiednie dla pełnego typu obiektu wywoływanego. Jeśli dzieje się to w czasie działania programu, to nazywa się to późnym wiązaniem lub wiązaniem dynamicznym. Niektóre języki udostępniają bardziej statyczne (w trakcie kompilacji) rozwiązania polimorfizmu - na przykład szablony i przeciążanie operatorów w C++. Dziedziczenie - Porządkuje i wspomaga polimorfizm i enkapsulację dzięki umożliwieniu definiowania i tworzenia specjalizowanych obiektów na podstawie bardziej ogólnych. Historia programowania obiektowego W punktach – kto wymyślił, pierwsze języki i teraźniejsze. – pierwotna koncepcja programowania obiektowego: Simuli 67, (Ole-Johana Dahla i
(…)
… na tej klasie wykonać.
•
Programista myśli co ma wykonać a nie jak to coś wykonać - nie musi się
przejmować szczegółami implementacyjnymi.
4. Konstruktory i destruktory.
Zadania konstruktora
Wywołanie konstruktora powoduje wykonanie następujących zadań:
•
obliczenie rozmiaru obiektu
•
alokacja obiektu w pamięci
•
wyczyszczenie (zerowanie) obszaru pamięci zarezerwowanej dla obiektu (tylko w
niektórych językach…
… dziedziczenia (w szczególności w klasie bazowej całej struktury
dziedziczenia), nie jest konieczne podawanie implementacji w klasie pochodnej.
•
jeśli w klasie jest zadeklarowana jakakolwiek metoda wirtualna, zaleca się aby
destruktor w tej klasie również określić jako wirtualny
Java
•
W Javie domyślnie wszystkie metody są wirtualne. Aby jednak określić jakąś
metodę jako niewirtualną należy zadeklarować metodę…
... zobacz całą notatkę
Komentarze użytkowników (0)