Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
PWSZ Gniezno // codefly 2009
2
Programowanie obiektowe
autor: Krzysztof Kęczkowski PWSZ Gniezno // codefly 2009
3
Programowanie proceduralne
Dlaczego obiektowo? początek Programowanie proceduralne Linie kodu Żeby zrozumieć dlaczego warto programować obiektowo spójrzmy na klasyczny model programowania proceduralnego, w którym instrukcje wykonywane są linia po linii od początku do końca programu. Istnieją w tym modelu typy zmiennych, instrukcje logiczne, pętle i struktury. Brakuje jednak czegoś bardzo ważnego – obiektów. koniec PWSZ Gniezno // codefly 2009
4
Dlaczego obiektowo? Przykład biblioteki – zbioru książek Książka
autor, tytuł, rok wydania, wydawnictwo, liczba stron, ilość sztuk, ilość sztuk wypożyczonych, ilość sztuk do wypożyczenia, itd. Żeby zrozumieć gdzie można zastosować obiektowość przyjrzyjmy się przykładowi biblioteki, która w swoich zbiorach przechowuje książki. Każda książka posiada pewne z góry założone atrybuty jak autor, tytuł, rok wydania itd.
5
Dlaczego obiektowo? Przykład biblioteki – zbioru książek
przykładowe rozwiązania wg programowania proceduralnego Wiele różnych tablic i przechodzenie po nich na tym samym indeksie Tablica ze wskaźnikami do struktur przechowujących właściwości Dziwne rozwiązania na około W jaki sposób można zrealizować taki model używając programowania proceduralnego? Można zrobić to generalnie na dwa sposoby. Pierwszy z nich to bardzo nieeleganckie użycie wielu tablic, które będą przechowywać różne właściwości tego samego obiektu pod tym samym indeksem. Drugim rozwiązaniem byłoby użycie tablicy wskaźników do struktur. W strukturach mamy możliwość pogrupowania pewnych cech w jedną całość. Jest to o niebo bardziej przejrzysty sposób. Wciąż jednak czegoś w nim brakuje. PWSZ Gniezno // codefly 2009
6
Dlaczego obiektowo? Przykład koła – użycie funkcji Koło
położenie x, położenie y, promień, średnica, pole, obwód Weźmy inny przykład. Ten przykład to taki w którym mamy pewnego rodzaju obiekt geometryczny. Właściwościami naszego koła są położenie na osi xy i promień oraz kilka cech możliwych do obliczenia z tych atrybutów. Są to jak widać promień, średnica, pole i obwód. PWSZ Gniezno // codefly 2009
7
Dlaczego obiektowo? Przykład koła – użycie funkcji
przykładowe rozwiązania wg programowania proceduralnego Podanie wartości x i y położenia oraz promienia koła Wywołanie funkcji operującej na tych wartościach Obliczenie wartości średnicy, pola i obwodu Aby zbudować coś na wzór tablicy kół należy wczytać na początku wartości bazowe, a następnie użyć ich jako atrybutów jakichś funkcji zdefiniowanych zupełnie gdzie indziej w kodzie. Jeżeli będziemy mieć więcej kodu i wyliczać sporo rzeczy, to bardzo możliwe, że pogubimy się we własnym kodzie. PWSZ Gniezno // codefly 2009
8
Dlaczego obiektowo? Tak, warto.
Czy warto stworzyć coś, co pozwoliłoby pogrupować istotne właściwości (cechy) obiektów oraz pozwoliło im samym zarządzanie swoimi wartościami (metody) ? Powyższe pytanie pojawiło się w głowach dwóch pracowników Norsk Regnesentral, którzy pracowali nad symulacjami zachowania się statków. Po pewnym czasie nie byli oni już w stanie kontrolować własnego kodu. Wpadli więc na pomysł, żeby pogrupować statki według typów i zostawić kontrolowanie własnych danych i zachowań po stronie każdego z typów. Tak, warto. PWSZ Gniezno // codefly 2009
9
Programowanie obiektowe
Idea Wszystko jest obiektem Jaka jest więc idea programowania obiektowego? Można ją zawrzeć w jednym prostym zdaniu, a mianowicie mówi ona, że wszystko jest obiektem. Obiektem może być więc wszystko, co należy do rzeczywistego świata. Poprzez obiekt możemy kontrolować kontrolki w programowaniu wizualnym, tworzyć nowe typy zawierające podtypy, a każdy z nich wciąż będzie obiektem. Obiektem może być pracownik firmy, samochód, kierownica, koło, głośnik, itd. PWSZ Gniezno // codefly 2009
10
Programowanie obiektowe
Reprezentacja obiektu Nazwa obiektu Cechy obiektu Jak w takim razie możemy opisać obiekt? Przyjęto, że są to generalnie 3 pola. Jest to nazwa obiektu, jego właściwości, cechy, atrybuty, oraz funkcje czy metody, które może ten obiekt wykonać. Funkcje, metody obiektu PWSZ Gniezno // codefly 2009
11
Programowanie obiektowe
Przykład obiektu class nazwa klasy Samochód marka, model, rocznik, pojemność, typ nadwozia, liczba drzwi, wyposażenie cechy klasy W językach programowania do opisu obiektów wprowadzono pojęcie klas. Każda klasa posiada swoją unikalną nazwę, swoje atrubuty oraz metody. W przypadku powyższego przykładu mogą to być np. metody dostępu do atrybutów. zapisz właściwości, wyświetl właściwości, modyfikuj właściwości metody klasy PWSZ Gniezno // codefly 2009
12
Programowanie obiektowe
Podstawowe założenia: Abstrakcja Hermetyzacja Istnieją pewne założenia, które muszą spełniać klasy. Są to: Abstrakcja – tzn. 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. Hermetyzacja – pozwala kontrolować aby jeden obiekt nie mógł wpływać w nieprzewidziany sposób na inne. Dostęp do wewnętrznych właściwości obiektu mają jedynie jego metody. Polimorfizm - to mechanizmy pozwalające programiście używać wartości, zmiennych i podprogramów na kilka różnych sposobów, inaczej to możliwość wyabstrahowania wyrażeń od konkretnych typów np. obiektu jakiejś klasy i typu liczbowego (przeciążenie operatorów) czy funkcje wirtualne. Dziedziczenie – to mechanizm w którym można stworzyć postać klasy bazowej, która będzie posiadać ogólne cechy i metody wspólne dla klas pochodnych będących bardziej wyspecjalizowanymi. Np klasa bazowa auto i dwie klasy pochodne osobowe i ciężarowe. Polimorfizm Dziedziczenie PWSZ Gniezno // codefly 2009
13
Programowanie obiektowe
Korzyści Większa przejrzystość kodu Lepsze zarządzanie kodem Ułatwienie dla pracy zespołowej Skomplikowane projekty stają się prostsze Programowanie wizualne Jakie korzyści daje nam programowanie obiektowe w czasie budowania programów? Przede wszystkim pozwala lepiej zorientować się w kodzie. Dużą zaletą jest tu również możliwość ułatwionej pracy zespołowej. W tym modelu programowania programiści mogą dostać do zrobienia różne klasy (lub bloki klas), które będą miały komunikować się ze sobą. Aby to zrobić pracownicy potrzebują jedynie wiedzieć, co dostaną na wejściu oraz co powinni zwrócić na wyjściu klasy. Konsekwencją tego skomplikowane projektu stają się prostsze w planowaniu, wykonaniu, zarządzaniu i rozbudowie. Ułatwia to również testowanie aplikacji. Programowanie obiektowe ma również szerokie zastosowanie w programowaniu wizualnym. PWSZ Gniezno // codefly 2009
14
Programowanie obiektowe
Przykład PWSZ Gniezno // codefly 2009
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.