Technologie obiektowe

Podobne dokumenty
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Podstawy Programowania Obiektowego

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Definiowanie własnych klas

Zaawansowane programowanie w języku C++ Klasy w C++

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Wstęp do programowania obiektowego. Wykład 2

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

UML cz. II. UML cz. II 1/38

Materiały do zajęć VII

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Programowanie obiektowe

Technologie i usługi internetowe cz. 2

Programowanie obiektowe

Do czego służą klasy?

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20

Język programowania. Andrzej Bobyk

Programowanie obiektowe - 1.

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Enkapsulacja, dziedziczenie, polimorfizm

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Modelowanie i Programowanie Obiektowe

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Diagramy klas. dr Jarosław Skaruz

Modelowanie obiektowe

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Czym są właściwości. Poprawne projektowanie klas

TEMAT : KLASY DZIEDZICZENIE

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

KLASY cz.1. Dorota Pylak

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Dokumentacja do API Javy.

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Programowanie obiektowe

Wstęp do Programowania 2

Definiowanie własnych klas

Wykład 8: klasy cz. 4

Wzorce projektowe. dr inż. Marcin Pietroo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Programowanie obiektowe

Podstawy Języka Java

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Paweł Kurzawa, Delfina Kongo

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

JAVA W SUPER EXPRESOWEJ PIGUŁCE

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Programowanie komputerowe. Zajęcia 7

Do czego służą klasy?


1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

10. Programowanie obiektowe w PHP5

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Szablony funkcji i klas (templates)

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Wprowadzenie do systemów informacyjnych

Dziedziczenie. dr Jarosław Skaruz

Zaawansowane programowanie obiektowe - wykład 5

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Projektowanie logiki aplikacji

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

UML w Visual Studio. Michał Ciećwierz

Charakterystyka oprogramowania obiektowego

Programowanie obiektowe W1 Wprowadzenie. Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki

Szablony funkcji i szablony klas

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Kurs WWW. Paweł Rajba.

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

PRZEWODNIK PO PRZEDMIOCIE

Języki i metody programowania Java. Wykład 2 (część 2)

PARADYGMATY PROGRAMOWANIA Wykład 4

Podstawy projektowania systemów komputerowych

PARADYGMATY PROGRAMOWANIA Wykład 2

Modelowanie danych, projektowanie systemu informatycznego

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

problem w określonym kontekście siły istotę jego rozwiązania

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Aplikacje w środowisku Java

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Transkrypt:

WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy)

warunki zaliczenia Obecność na wykładach (nie)obowiązkowa Obecność na laboratoriach obowiązkowa Kolokwium na lab w I połowie grudnia Projekt Kolokwium z wykładu na ostatnim wykładzie Ocena z przedmiotu: 60% - ocena z laboratorium 40% - ocena z wykładu

Plan wykładu 1. Ugruntowanie wiedzy związanej z obiektowością. 2. Modelowanie obiektowe 3. Zasady projektowania obiektowego 4. Wzorce projektowe 5. Zagadnienia zaawansowane: ORM, SOA, WCF

Czym jest obiekt? Ludzie z natury myślą w kategoriach obiektów Każdy obiekt charakteryzuje się atrybutami i zachowaniem Obiekty służą do łączenia danych metodami (instrukcjami) operującymi na nich Każdy obiekt współdziała z otoczeniem i ma wpływ na inne obiekty

Programowanie obiektowe Podstawowa definicja obiektu mówi, że Jest to pewna jednostka, która składa się zarówno z danych, jak i z zachowań W programowaniu proceduralnym kod dzieli się na całkowicie niezależne od siebie funkcje i procedury. Czarne skrzynki, które przyjmują dane na wejściu i zwracają wyniki na wyjściu. Dane umieszcza się w osobnych strukturach, na których te funkcje mogą operować.

Programowanie obiektowe Obiekty to z jednej strony struktury danych i podstawowe typy. Z drugiej strony to metody, które wykonują operacje na tych danych W obiekcie można kontrolować dostęp do jej składników. Dane obiektu atrybuty Zachowania obiektu - metody

Klasy Klasa działa jak szablon do tworzenia obiektów. Wszystkie obiekty tej samej klasy zawierają te same metody i te same zmienne instancji. Klasa jest konstrukcją logiczną, a obiekt jest zdolny do wykorzystywania czynności wykorzystywanych przez klasę. Obiekt klasy instancja klasy

Interfejs a implementacja

Interfejs Interfejs składa się z usług, z których może korzystać użytkownik końcowy. W idealnej sytuacji udostępniane są tylko te usługi, które są niezbędne. ZASADA MINIMALNEGO INTERFEJSU Interfejs klasy powinien składać się wyłącznie z tego co jest użytkownikowi potrzebne

Implementacja Szczegóły implementacyjne są ukryte przed użytkownikiem ZMIANA W IMPLEMENTACJI KLASY NIE POWINNA POWODOWAĆ KONIECZNOŚCI WPROWADZANIA ZMIAN W KODZIE, KTÓRY Z NIEJ KORZYSTA Jeden z najważniejszych celów projektowych Dobrze zaprojektowany interfejs!!! Niezbędny warunek: wymagania interfejsu musi spełniać zarówno użytkownik jak i implementacja.

Abstrakcja Kiedy obiekt (lub system) jest określony lub przedstawiony w prostszy, mniej szczegółowy sposób niż rzeczywisty odpowiednik, taką specyfikacją nazywa się abstrakcją. Tylko właściwości, które są częścią określonego obiektu Abstrakcja a interfejs klas.

Hermetyzacja Hermetyzacja mechanizm ukrywania zmiennych instancji i nieistotnych metod klasy przed innymi obiektami. Eksponowane są tylko te metody, które są niezbędne do zastosowania obiektu klasy Hermetyzacja powoduje powstanie warstwy, której zadaniem jest komunikowanie się ze światem zewnętrznym. Świat zewnętrzny może komunikować się z obiektem tylko przez tę powłokę Tę warstwę ochronną, która powinna zawierać tylko metody określa się mianem interfejsu.

Modyfikatory dostępu private ukrywanie metody i zmiennych instancji przed innymi obiektami public udostępnianie innym obiektom Metody private mogą być wywoływane tylko przez metody należące do tego samego obiektu metody pomocnicze/usługowe.

Uwagi o hermetyzacji Uwzględnienie warstwy abstrakcji programista nie musi znać szczegółów realizacji danej klasy Oddzielenie interfejsu od jego realizacji można ulepszyć realizację, przy zachowaniu interfejsu Otoczenie obiektu ochronnym opakowaniem ochrona przed niepożądanym dostępem Dostęp do zmiennych instancji powinien zawsze odbywać się przez metodę (lub własności)

Metody pobierające i ustawiające Koncepcja ukrywania danych metody pobierające i ustawiające. gettery/settery akcesory/mutatory Udostępniany jest interfejs metod a nie szczegóły implementacji. private string title; public string Title { get { return title; } set { title = value; } }

Anatomia klasy Klasa dostarcza projektu do tworzenia obiektu. Klasa jest uogólnieniem obiektu z realnego świata. Szablon pojedynczej klasy może być wykorzystany do tworzenia wielu obiektów, które wszystkie dzielą cechy specyficzne dla tej pojedynczej klasy. Składowe klasy, są elementami języka tworzącymi wnętrze klasy: Składowe danych zmienne instancji zmienne statyczne Składowe funkcyjne metody konstruktory

Anatomia klasy Zmienne instancji (pola) - używane do reprezentowania danych opisujących obiekty - przynależy do pojedynczej instancji - powinien charakteryzować każdy obiekt Zmienne statyczne (klasy) - dane skojarzone z całą grupą obiektów danej klasy - jedna zmienna przyporządkowana wszystkim obiektom

Anatomia klasy Metody instancji - jest wykonywana w związku z określonym obiektem, potrzebuje obiektu, aby była wykonywana Metoda statyczna jest wykonywana w związku z klasą i nie potrzebuje pojedynczego obiektu. Wszystkie obiekty współdzielą tylko jedną kopię każdej metody instancji Metody, które nie wskazują dokładnie na jeden obiekt, powinny być statyczne. W niektórych wypadkach należy użyć metody statycznej, aby umożliwić dostęp do statycznej zmiennej składowej. Nie mamy wprost dostępu i nie możemy wywołać zmiennych instancji i metod instancji z wnętrza metod statycznych tej samej klasy.

Klasa - UML Osoba +Imie : string +Nazwisko : string +RokUrodzenia : int -Pensja : double +SetPensja() +GetPensja() : double +Urlop() Nazwa klasy Zmienne instancji Metody instancji