Programowanie obiektowe

Podobne dokumenty
Aplikacje w środowisku Java

Klasy abstrakcyjne, interfejsy i polimorfizm

Klasy abstrakcyjne i interfejsy

Programowanie obiektowe

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

Technologie i usługi internetowe cz. 2

Programowanie obiektowe - 1.

Programowanie obiektowe

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

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Podstawy Programowania Obiektowego

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

Polimorfizm. dr Jarosław Skaruz

Wykład 9: Polimorfizm i klasy wirtualne

Programowanie obiektowe

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

Programowanie obiektowe

Programowanie obiektowe

Programowanie w Javie wykład 8 Interfejsy

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

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Podstawy Języka Java

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

Dokumentacja do API Javy.

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.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Java: interfejsy i klasy wewnętrzne

Pakiety i interfejsy. Tomasz Borzyszkowski

Enkapsulacja, dziedziczenie, polimorfizm

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Programowanie obiektowe

K_W04 K_W04 K_W04. Opis

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

.NET Klasy, obiekty. ciąg dalszy

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

Podstawy programowania III

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Paweł Kurzawa, Delfina Kongo

Platformy Programistyczne Wykład z Javy dla zaawansowanych

Interfejsy i klasy wewnętrzne

Podstawy i języki programowania

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

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Podstawy i języki programowania

Dziedziczenie jednobazowe, poliformizm

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

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Czym jest polimorfizm?

private - oznacza, że wszystkie elementy klasy bazowej zmieniają się w prywatne.

Wykład 7: Pakiety i Interfejsy

Przykład -

Modelowanie i Programowanie Obiektowe

hierarchie klas i wielodziedziczenie

PHP 5 język obiektowy

Programowanie obiektowe

Definiowanie własnych klas

MAS dr. Inż. Mariusz Trzaska. Realizacja różnych modeli dziedziczenia w obiektowych językach programowania

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

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

Modelowanie obiektowe

Programowanie obiektowe. Wykład 03. Maciej Wołoszyn 17 marca Polimorfizm oraz wczesne i późne wiazanie

10. Programowanie obiektowe w PHP5

Kurs WWW. Paweł Rajba.

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Projektowanie obiektowe. Roman Simiński Polimorfizm

Materiały do zajęć VII

Laboratorium 1 - Programowanie proceduralne i obiektowe

Programowanie w Internecie. Java

Programowanie obiektowe

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

Programowanie obiektowe

Programowanie obiektowe i zdarzeniowe

Java Język programowania

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Programowanie obiektowe. Wprowadzenie

Inżynieria Oprogramowania. UML Schematy klas

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

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

Dziedziczenie. dr Jarosław Skaruz

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

Programowanie 2. Język C++. Wykład 9.

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

Szablony funkcji i klas (templates)

Programowanie obiektowe

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

Programowanie obiektowe

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

Programowanie w języku Java WYKŁAD

Dziedziczenie. Tomasz Borzyszkowski

Programowanie Obiektowe i C++

Definiowanie własnych klas

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

Języki i metody programowania Java INF302W. Wykład 1 (część 1) na podstawie Autor Dr inż. Zofia Kruczkiewicz

Programowanie obiektowe

Do czego służą klasy?

Transkrypt:

Programowanie obiektowe Laboratorium 10 - klasy abstrakcyjne i interfejsy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 17 maja 2017 1 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Czym jest polimorfizm? Definicja Polimorfizm (z gr. wielopostaciowość) jest mechanizmem pozwalającym na wyabstrahowanie wyrażeń od konkretnych typów - obiekt może przyjąć jedną z wielu przeznaczonych dla niego postaci, cechujących się odmiennym zachowaniem. Jest on jednym z czterech, najważniejszych założeń paradygmatu obiektowego (abstrakcja, hermetyzacja, polimorfizm oraz dziedziczenie). 2 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Praktyczne zastosowanie polimorfizmu Employee [ ] employees = {new Employee ( ), new DisabledEmployee ( ), new SelfEmployment ( ) } ; f o r ( Employee employee : employees ) System. out. p r i n t l n ( employee. c a l c u l a t e T a x ( ) ) ; 3 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Czym jest klasa abstrakcyjna? Definicja Klasa abstrakcyjna (ang. abstract class) jest klasą, której obiektów nie da się utworzyć - jest wyłącznie uogólnieniem innych klas. Język C + + C#/Java/P HP Sposób utworzenia Ma min. 1 metodę czysto wirtualną Za pomocą słowa kluczowego abstract Język C + +/C# Java/P HP Sposób użycia klasapochodna : klasabazowa Za pomocą słowa kluczowego extends 4 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Przykład klas abstrakcyjnych 5 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Czym jest interfejs? Definicja Interfejs (ang. interface) jest abstrakcyjnym typem niezawierającym pól, które mogą zmieniać wartość i zwykle nie posiadającym implementacji zadeklarowanych metod (np. od Javy 8 możliwe jest użycie metod domyślnych - słowo kluczowe default). Gdy klasa definiuje wszystkie metody interfejsu oznacza to, że go implementuje. Język C + + C#/Java/P HP Sposób użycia Ma tylko metody czysto wirtualne Za pomocą słowa kluczowego interface Język C + +/C# Java/P HP Sposób utworzenia klasapochodna : klasabazowa Za pomocą słowa kluczowego implements 6 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Przykład interfejsów 7 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Główne różnice 1 W interfejsach wszystkie metody są abstrakcyjne (wyjątek stanowi nowy mechanizm znajdujący sie w Javie 8, jednakże nie powinien on być nadużywany), a w klasie abstrakcyjnej można stworzyć także metody posiadające ciało. 2 Klasa abstrakcyjna - w przeciwieństwie do interfejsu - powinna być związana z klasami dziedziczącymi w sensie logicznym. 3 W wielu językach wielodziedziczenie nie jest możliwe (z omawianych - C#, Java, P HP ), lecz istnieje możliwość implementowania wielu interfejsów. 4 Wszystkie zadeklarowane metody w interfejsie muszą być publiczne. 5 Interfejsy nie mogą zawierać innych atrybutów, niż stałe. 8 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Zadanie Napisz dwie klasy, zgodnie z przedstawionym diagramem. Dla metody calculatetax skorzystaj z wysokości podatku równej 8% dla artykułów spożywczych i 23% dla alkoholu. 9 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Zadanie Stwórz trzy produkty spożywcze i dwa alkoholowe. Oblicz sumaryczną wysokość zapłaconego podatku. 10 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Zadanie Zaimplementuj interfejs zgodnie z przedstawionym diagramem i ponownie oblicz sumaryczną wysokość zapłaconego podatku. Czy moglibyśmy użyc klasy abstrakcyjnej zamiast niego? 11 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Zadanie Zaimplementuj klasy zgodnie z diagramem (Employee jest klasą abstrakcyjną). Czy możemy zastąpić klasę Employee interfejsem? 12 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Dziękuję za uwagę 13 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe