Programowanie obiektowe

Podobne dokumenty
Programowanie obiektowe

Programowanie obiektowe

Programowanie obiektowe

Programowanie obiektowe

Programowanie obiektowe

Programowanie obiektowe

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Klasy abstrakcyjne i interfejsy

Aplikacje w środowisku Java

PHP 5 język obiektowy

Kurs WWW. Paweł Rajba.

Programowanie obiektowe

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Programowanie obiektowe

Analiza i projektowanie aplikacji Java

Dokumentacja do API Javy.

TEMAT : KLASY DZIEDZICZENIE

PRZEWODNIK PO PRZEDMIOCIE

Programowanie obiektowe

Klasy abstrakcyjne, interfejsy i polimorfizm

Diagramy klas. dr Jarosław Skaruz

PRZEWODNIK PO PRZEDMIOCIE

Wykład 5 Okna MDI i SDI, dziedziczenie

Programowanie obiektowe 2 - opis przedmiotu

Programowanie obiektowe

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

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

Techniki modelowania programów Kod przedmiotu

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

Modelowanie obiektowe

.NET Klasy, obiekty. ciąg dalszy

Dziedziczenie. Zadanie 1

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Programowanie obiektowe - 1.

UML a kod. C++, Java i C#

Programowanie obiektowe i zdarzeniowe

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

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

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

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

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

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

Podstawy projektowania systemów komputerowych

PRZEWODNIK PO PRZEDMIOCIE

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

Dziedziczenie. dr Jarosław Skaruz

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

PRZEWODNIK PO PRZEDMIOCIE

Metodyki i techniki programowania

Technologie i usługi internetowe cz. 2

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

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

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

Aplikacje w środowisku Java

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Projektowanie logiki aplikacji

Programowanie obiektowe 1 - opis przedmiotu

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

Zaawansowane programowanie w C++ (PCP)

Programowanie obiektowe

Zad. 7: Fabryka obiektów i singleton

PRZEWODNIK PO PRZEDMIOCIE

Definiowanie własnych klas

Metodyki i techniki programowania

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

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Programowanie obiektowe

Podstawy programowania III

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Programowanie obiektowe

Podstawy modelowania programów Kod przedmiotu

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

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Wstęp do programowania obiektowego. Wykład 2

Podstawy Programowania Obiektowego

Wykład 1 Inżynieria Oprogramowania

Wykład 3 Składnia języka C# (cz. 2)

WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy

KARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem

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

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Oracle PL/SQL. Paweł Rajba.

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2012/2013

PRZEWODNIK PO PRZEDMIOCIE

Java: interfejsy i klasy wewnętrzne

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Rok akademicki: 2012/2013 Kod: EAR s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Język Java część 2 (przykładowa aplikacja)

Template method (metoda szablonowa)

Polimorfizm. dr Jarosław Skaruz

Wzorce projektowe. dr inż. Marcin Pietroo

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

Transkrypt:

Laboratorium z przedmiotu - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych zajęć tematyka jest ważna, gdyż klasy abstrakcyjne i interfejsy są powszechnie wykorzystywane przy okazji stosowania mechanizmu dziedziczenia. Aby ze zrozumieniem zrealizować zadania, przewidziane do wykonania w ramach zajęć laboratoryjnych, należy znać znaczenie pojęć takich jak: klasa abstrakcyjna, metoda abstrakcyjna, interfejs. Należy również znać podstawy języka modelowania systemów informatycznych UML. 1. Klasy i metody abstrakcyjne Klasa abstrakcyjna to klasa, która nie posiada swoich reprezentantów pod postacią obiektów. Jest ona wykorzystywana wyłącznie w roli klasy bazowej dla innych klas. Klasa potomna względem klasy abstrakcyjnej musi implementować jej wszystkie abstrakcyjne metody i właściwości. Klasa abstrakcyjna może zawierać także pola oraz metody i właściwości, które nie są abstrakcyjne. Klasa, która zawiera abstrakcyjną właściwość lub metodę, również musi być abstrakcyjna. Klasa abstrakcyjna jest oznaczona modyfikatorem abstract. Metoda abstrakcyjna jest metodą oznaczoną modyfikatorem abstract. Posiada ona jedynie deklarację w klasie abstrakcyjnej. Definicja metody znajduje się w klasach potomnych, dziedziczących po klasie abstrakcyjnej. Metody abstrakcyjne nie mogą być prywatne. Mechanizm dziedziczenia po klasie abstrakcyjnej przedstawia poniższy przykład: Przykład 1 Dziedziczenie klasy abstrakcyjnej 1

Proszę zwrócić uwagę na to, że metody klas potomnych, które implementują metody abstrakcyjne klasy bazowej, posiadają modyfikator override. 2. Interfejsy Interfejs jest abstrakcyjną reprezentacją klasy, która deklaruje swoje składowe, ale ich nie implementuje. Tworzenie obiektów interfejsu nie jest możliwe. Klasy dziedziczące po interfejsie muszą implementować wszystkie jego składowe. Interfejsy nie mogą zawierać pól. Wszystkie składowe interfejsu muszą być publiczne. Klasa może dziedziczyć po kilku interfejsach jednocześnie. Interfejs tworzy się z wykorzystaniem słowa kluczowego interface. 2

Mechanizm dziedziczenia po interfejsie przedstawia poniższy przykład: Przykład 2 Dziedziczenie po interfejsie Dziedziczenie po wielu interfejsach odbywa się za pomocą konstrukcji: class <nazwa klasy> : <nazwa interfejsu 1>, <nazwa interfejsu 2>,... 3. UML klasy abstrakcyjne i interfejsy Klasy abstrakcyjne w języku UML przedstawia się pisząc ich nazwę oraz nazwę ich metod abstrakcyjnych kursywą. Rys. 1 Reprezentacja klasy abstrakcyjnej w języku UML 3

Interfejs oraz dziedziczenie po interfejsie na diagramach klas można przedstawić w dwojaki sposób: Rys. 2 Reprezentacja interfejsów w języku UML Wybór konkretnej metody przedstawienia interfejsu, zależy od twórcy diagramu. Projekty bardziej rozbudowanych systemów składają się najczęściej z wielu diagramów klas. Ponieważ pierwsza metoda pozwala na przedstawienie szczegółów interfejsu, powinna zostać wykorzystana na pierwszym diagramie, który go prezentuje. Na kolejnych diagramach ten sam interfejs może być przedstawiany za pomocą drugiej metody, co pozwala na zwiększenie czytelności schematu. Zadanie 1. Proszę zrealizować aplikację obiektową, która powinna odznaczać się następującymi cechami: Aplikacja powinna zawierać klasy zaimplementowane zgodnie z zamieszczonym poniżej diagramem klas. Metody WypiszInfo powinny wypisywać na ekranie konsoli informacje na temat wartości wszystkich pól obiektów. Metody ZnajdzPozycje powinny wyszukiwać w katalogu pozycję spełniającą dane kryteria i zwracać odpowiednią referencję. Jeśli żaden obiekt w katalogu nie spełnia danego kryterium, metoda powinna zwrócić wartość null. Metoda WypiszWszystkiePozycje powinna wypisywać informacje o wszystkich pozycjach w katalogu. Przechowywanie obiektów pozycji w klasie Katalog oraz przechowywanie obiektów autorów w klasie Ksiazka powinno być zrealizowane za pomocą kolekcji typu List<T>. Należy zwrócić uwagę na to, że klasa Pozycja jest klasą abstrakcyjną. Po wykonaniu zadania należy je przetestować za pomocą własnego kodu testowego. 4

Przy ocenie zadania główny nacisk będzie kładziony na: Prawidłową implementację klasy abstrakcyjnej. Prawidłową implementację metod. Utworzony kod testowy i wyniki testów. Zadanie 2. Proszę zrealizować aplikację obiektową, która powinna odznaczać się następującymi cechami: Aplikacja stanowi rozszerzenie i modyfikację aplikacji z zadania nr 1. Aplikacja powinna zawierać klasy zaimplementowane zgodnie z zamieszczonym poniżej diagramem klas. Metody do zarządzania pozycjami zostały zdefiniowane w interfejsie IZarzadzaniePozycjami. Metody ZnajdzPozycje i WypiszWszystkiePozycje z klasy Biblioteka mają przeszukiwać wszystkie katalogi zawarte w bibliotece. Metoda DodajPozycje z klasy biblioteka ma dodawać pozycję do katalogu o podanej nazwie działu tematycznego. 5

Należy zauważyć, że metody do zarządzania pozycjami z klasy Biblioteka będą wykonywać operacje na obiektach typu Katalog, wykorzystując przy tym metody zdefiniowane w klasie Katalog. Po wykonaniu zadania należy je przetestować za pomocą własnego kodu testowego. Przy ocenie zadania główny nacisk będzie kładziony na: Prawidłową implementację interfejsu. Prawidłową implementację metod odziedziczonych z interfejsu. Utworzony kod testowy i wyniki testów. Zadanie do domu. Proszę zmodyfikować zadanie 2, realizując operacje zarządzania bibliotekarzami za pomocą metod odziedziczonych z interfejsu IZarzadzanieBibliotekarzami. 6

Zagadnienia, które należy uznać za przyswojone w trakcie zajęć. Po zajęciach będzie obowiązywać praktyczna znajomość: Pojęcia klasy abstrakcyjnej i interfejsu. Wykorzystanie klas abstrakcyjnych i interfejsów. Przedstawienie klas abstrakcyjnych i interfejsów na diagramie klas. 7