Obiekty, aspekty, komponenty
|
|
- Artur Stefaniak
- 6 lat temu
- Przeglądów:
Transkrypt
1 Obiekty, aspekty, komponenty Obiekty, aspekty, komponenty Bartosz Walter
2 Rozdział zagadnień Zasada rozdziału zagadnień (Separation of Concerns) program powinien być zdekomponowany w taki sposób, aby różne jego aspekty znajdowały się w dobrze odseparowanych od siebie modułach każdy aspekt zajmuje się jednym zagadnieniem zagadnienie to szczególny cel programu, koncepcja albo funkcja D. Parnas "On the criteria to be used in decomposing systems..." (1972) G. Polya "How to Solve It?" (1973) E. Dijkstra "A Discipline of Programming" (1976) Wprowadzenie do przedmiotu (2)
3 Wprowadzenie do przedmiotu (3) Plan wykładu Obiektowość Aspekty Komponenty
4 Wprowadzenie do przedmiotu (4) Plan wykładu Obiektowość Aspekty Komponenty
5 Wprowadzenie do przedmiotu (5) Obiektowość Abstrakcja Polimorfizm Obiekt Hermetyzacja Dziedziczenie Odpowiedzialność Elastyczność Powtórne użycie Modularyzacja
6 Wprowadzenie do przedmiotu (6) Czym jest obiekt? Definicja 1 Obiekt w reprezentuje element świata rzeczywistego; jest strukturą posiadającą tożsamość, stan (pola) i zachowanie (metody). Definicja 2 Obiekt w pełni odpowiada za pewien fragment świata rzeczywistego. Sposób realizacji tej odpowiedzialności zależy od samego obiektu.
7 Obiektowość a podejście strukturalne Przykład Wykładowca przeprowadza egzamin. W zależności od oceny oraz rodzaju egzaminu, za który została wystawiona, student zalicza przedmiot, podchodzi do poprawki lub prosi o zaliczenie warunkowe. Wykładowca powinien każdemu studentowi, w zależności od jego indywidualnej sytuacji, przekazać wskazówki dotyczące dalszego postępowania. na podstawie przykładu Wprowadzenie A. Shallowaya do przedmiotu i J. Trotta (7)
8 Obiektowość a podejście strukturalne Rozwiązanie 1 1. Utwórz listę studentów i ich ocen 2. Dla każdego studenta z listy a) określ jego ocenę b) określ dalszy sposób postępowania studenta c) przekaż informacje studentowi Wprowadzenie do przedmiotu (8)
9 Obiektowość a podejście strukturalne Rozwiązanie 2 Wykładowca 1. Opublikuj listę studentów i ich ocen 2. Opublikuj informację o sposobie dalszego postępowania w zależności od oceny Student 1. Znajdź swoją ocenę na liście udostępnionej przez Wykładowcę 2. Określ sposób postępowania na podstawie oceny 3. Postąp zgodnie z instrukcją Wprowadzenie do przedmiotu (9)
10 Obiektowość a podejście strukturalne Pojawiają się nowe wymagania... Studenci powtarzający przedmiot nie mają prawa do egzaminu warunkowego Studenci niepełnosprawni mogą poprosić o jeszcze jeden termin egzaminu Studenci z wymiany zagranicznej nie muszą zdawać tego egzaminu, mogą wybrać inny... Wprowadzenie do przedmiotu (10)
11 Obiektowość a podejście strukturalne Wnioski Podział odpowiedzialności pozwolił uprościć algorytm zmniejszyć powiązania między obiektami zwiększyć otwartość systemu na zmiany Wprowadzenie do przedmiotu (11)
12 Opis klasy Klasa Nauczyciel Odpowiedzialność zarządzanie kolekcją udostępnianie ocen uczniom Współdziałanie Kolekcja: dodawanie i usuwanie ocen Uczeń: udostępnianie ocen Wprowadzenie do przedmiotu (12)
13 Spójność obiektu Spójność obiektu (ang. cohesion) opis współpracy elementów obiektu stopień powiązania metod i pól obiektu przy wypełnieniu nałożonej na niego odpowiedzialności A a c b d e Wniosek Prawidłowo zaprojektowana klasa jest spójna Wprowadzenie do przedmiotu (13)
14 Powiązania między obiektami Powiązania między obiektami (ang. coupling) opis zależności pomiędzy obiektami stopień powiązania obiektów, które nie są spokrewnione B1 A B2 Wniosek Niski stopień powiązań wspiera abstrakcję i hermetyzację w systemie Wprowadzenie do przedmiotu (14)
15 Wprowadzenie do przedmiotu (15) Asocjacja Użytkownik +posiada Telefon Telefon należy do Użytkownika Telefon może zmienić Użytkownika, Użytkownik może zmienić Telefon Użytkownik zna swój Telefon, Telefon nie wie, kto jest jego właścicielem Istnienie Użytkownika nie ma wpływu na istnienie Telefonu i vice wersa
16 Wprowadzenie do przedmiotu (16) Agregacja Katalog Książka Katalog zawiera Książki Książka może należeć do wielu Katalogów jednocześnie Istnienie Katalogu nie ma wpływu na istnienie Książki i vice versa
17 Wprowadzenie do przedmiotu (17) Kompozycja Książka Rozdział Książka składa się z Rozdziałów, Rozdział jest częścią Książki Rozdział może należeć tylko do jednej Książki Istnienie Książki decyduje o istnieniu jej Rozdziałów
18 Wprowadzenie do przedmiotu (18) Interfejsy «Interface» Komunikator komunikator.zadzwon() zadzwon() odbierz() Telefon Tel. komórkowy Tel. satelit. zadzwon() odbierz() zadzwon() odbierz() zadzwon() odbierz() Wnioski Interfejs mówi CO robi klasa, a nie W JAKI SPOSÓB. Interfejs opisuje ROLĘ obiektu.
19 Wprowadzenie do przedmiotu (19) Wielokrotne interfejsy «Interface» Komunikator zadzwon() odbierz() Komunikator Telefon Tel. komórkowy Tel. satelit. zadzwon() odbierz() zadzwon() odbierz() zadzwon() odbierz() Zegarek czas() «Interface» Czasomierz czas() Komunikator komunikator = new TelefonKomorkowy(); komunikator.zadzwon();
20 Wprowadzenie do przedmiotu (20) Wielokrotne interfejsy «Interface» Komunikator zadzwon() odbierz() Telefon Tel. komórkowy Tel. satelit. zadzwon() odbierz() zadzwon() odbierz() zadzwon() odbierz() Zegarek czas() «Interface» Czasomierz Czasomierz Czasomierz czasomierz = new Zegarek(); czasomierz.czas(); czas()
21 Wprowadzenie do przedmiotu (21) Wielokrotne interfejsy «Interface» Komunikator zadzwon() odbierz() Komunikator Telefon Tel. komórkowy Tel. satelit. zadzwon() odbierz() zadzwon() odbierz() zadzwon() odbierz() Zegarek czas() «Interface» Czasomierz Czasomierz czas() Komunikator komorka = new TelefonKomorkowy(); Czasomierz komorka = new TelefonKomorkowy();
22 Wprowadzenie do przedmiotu (22) Dziedziczenie Odrzutowiec jest rodzajem Samolotu Odrzutowiec może zastąpić Samolot Odrzutowiec posiada niejawną instancję Samolotu związek między Odrzutowcem i Samolotem jest nierozerwalny
23 Wprowadzenie do przedmiotu (23) Dziedziczenie vs. użycie interfejsu Zegarek czas() «Interface» Komunikator zadzwon() odbierz() Zegar ścienny czas() Telefon zadzwon() odbierz() Telefon kom. zadzwon() odbierz() czas() Zegar ścienny jest rodzajem Zegarka. Posiada wszystkie jego cechy i działa tak samo Zegar ścienny dziedziczy zarówno typ, jak i implementację Telefon i Telefon kom. są Komunikatorami. Oba obiekty mogą inicjować i odbierać rozmowy Telefon i Telefon kom. współdzielą tylko typ
24 Dziedziczenie klas vs. dziedziczenie interfejsów Zegarek czas() «Interface» Czasomierz czas() Zegar ścienny czas() Zegar ścienny czas() «Interface» Zegar cyfr. czas() wyswietl() Zegarek ręczny czas() wyswietl() Wnioski Dziedziczenie klas przekazuje podklasie typ i implementację Dziedziczenie interfejsów dotyczy tylko typu Wprowadzenie do przedmiotu (24)
25 Wprowadzenie do przedmiotu (25) Hermetyzacja Definicja 1 Hermetyzacja oznacza ukrywanie danych przed niepożądanym dostępem Definicja 2 Hermetyzacja oznacza ukrywanie każdej decyzji projektowej, która może ulec zmianie: interfejsu, implementacji, zachowania metody, danych Wniosek Należy identyfikować zmienność w systemie i hermetyzować ją
26 Hermetyzacja danych (1) Przykład Ocena może zmienić swoją wartość Konstruktor tworzy ułomny obiekt Ocena ocena = new Ocena(); ocena.ustawwartosc(ocena.bdb); Wprowadzenie do przedmiotu (26)
27 Hermetyzacja danych (2) Przykład Wykładowca wystawia oceny Kto jeszcze może wystawić oceny? Kolekcja oceny = nauczyciel.oceny(); oceny.dodaj(new Ocena(Ocena.BDB)); Wprowadzenie do przedmiotu (27)
28 Wprowadzenie do przedmiotu (28) Zadanie Oceń jakość tego projektu
29 Rozwiązanie Wprowadzenie do przedmiotu (29)
30 Wprowadzenie do przedmiotu (30) Plan wykładu Obiektowość Aspekty Komponenty
31 Rozdział zagadnień Zasada rozdziału zagadnień (Separation of Concerns) program powinien być zdekomponowany w taki sposób, aby różne jego aspekty znajdowały się w dobrze odseparowanych od siebie częściach systemu każdy aspekt zajmuje się jednym zagadnieniem zagadnienie to szczególny cel programu, koncepcja albo funkcja D. Parnas "On the criteria to be used in decomposing systems..." (1972) G. Polya "How to Solve It?" (1973) E. Dijkstra "A Discipline of Programming" (1976) Wprowadzenie do przedmiotu (31)
32 Wprowadzenie do przedmiotu (32) Nisza aspektowa W programowaniu obiektowym system jest zbiorem współdziałających, samodzielnych i odpowiedzialnych jednostek obiektów klasy ukrywają implementację, prezentując jedynie interfejsy polimorfizm jest podstawowym mechanizmem łączenia podobnych koncepcji...ale jak prawidłowo zaimplementować cechy, które przecinają wiele niespokrewnionych ze sobą obiektów?
33 Wprowadzenie do przedmiotu (33) Podział wymagań Wymagania podstawowe (biznesowe) Wymagania systemowe (techniczne)
34 Wprowadzenie do przedmiotu (34) Modularyzacja kodu funkcje podstawowe aspekt 1 aspekt 2 program obiektowy program aspektowy
35 Wprowadzenie do przedmiotu (35) OOP a AOP Programowanie obiektowe grupowanie podobnych koncepcji za pomocą hermetyzacji i dziedziczenia podstawowa jednostka modularyzacji: klasa Programowanie aspektowe grupowanie podobnych koncepcji w niezwiązanych ze sobą klasach, niezależnie od dziedziczenia dodatkowy mechanizm modularyzacji: aspekt
36 Język AspectJ AspectJ G. Kiczales (2001), Xerox Palo Alto Research Center aspektowe rozszerzenie Javy aspekt jako specyficzna klasa możliwość zmiany zachowania i struktury kodu łączenie aspektów i klas na poziomie bajtkodu własny kompilator ajc AspectJ Java Wprowadzenie do przedmiotu (36)
37 Aspekt Aspekt (w języku AspectJ) specjalizowana klasa, która może przecinać inne klasy podlega dziedziczeniu jednostka modularyzacji (obok klasy) posiada typowe elementy klasy łączy punkty cięcia i porady Aspekt.aj Aspekt.class kompilacja Wprowadzenie do przedmiotu (37)
38 Wprowadzenie do przedmiotu (38) Zasada działania AspectJ aspekt aspekt aspekt pliki *.aj weaver obiekt obiekt obiekt pliki *.java pliki *.class
39 Prosty aspekt w AspectJ public class HelloWorld { } public static void hej(string tekst) { System.out.println(tekst); } public static void hejkolego(string tekst, String imie) { System.out.println(imie + ", " + tekst); } public static int hejludzie(string tekst, String[] imiona) { for (int i = 0; i < imiona.length; i++) System.out.println(imiona[i] + ", " + tekst); return imiona.length; } na podstawie Wprowadzenie przykładu do R. Laddada przedmiotu (2002) (39)
40 Prosty aspekt w AspectJ public aspect Maniery { pointcut wywolaniehej () : call(public static void HelloWorld.hej*(..)); before() : wywolaniehej() { System.out.println("Dzień dobry!"); } } after() : wywolaniehej() { System.out.println("Dziękuję!"); } na podstawie przykładu R. Laddada (2002) Wprowadzenie do przedmiotu (40)
41 Punkty złączeń Punkty złączenia (ang. joinpoints) są dowolnymi, identyfikowalnymi miejscami w programie. Przykłady: wywołanie metody i konstruktora wykonanie metody i konstruktora dostęp do pola obsługa wyjątku statyczna inicjacja klasy Wprowadzenie do przedmiotu (41)
42 Punkty cięcia Punkt cięcia (ang. pointcut) jest zdefiniowaną kolekcją punktów złączenia. nazwa punktu cięcia pointcut wywolaniehej () : call(public static void HelloWorld.hej*(..)); definicja punktu złączenia Wprowadzenie do przedmiotu (42)
43 Wprowadzenie do przedmiotu (43) Porada Porada (ang. advice) jest fragmentem kodu programu wykonywanym przed, po lub zamiast osiągnięcia przez program punktu cięcia. brak kontekstu punkt cięcia z określeniem momentu obsługi before() : call (public * Klasa.metoda(..)) { // kod porady, który będzie wykonany przed // wywołaniem metody metoda w klasie Klasa }
44 Rodzaje porad Rodzaje porad w AspectJ before() wykonywana tuż przed punktem cięcia after() {returning throwing} wykonywana tuż po punkcie cięcia (poprawnym lub zgłaszającym wyjątek) around(context) otaczająca punkt cięcia i decydująca o jego wykonaniu lub nie Wprowadzenie do przedmiotu (44)
45 Przykład: aspekt logujący wywołania metod public aspect Logger { pointcut wywolaniemetody() : call(* * (..)) &&! within(logger); } before() : wywolaniemetody() { } System.out.println("Przed wywołaniem metody " + thisjoinpoint.getsignature()); after() returning : wywolaniemetody() { System.out.println("Po wywołaniu metody " + thisjoinpoint.getsignature()); } after() throwing : wywolaniemetody() { System.out.println("Metoda " + thisjoinpoint.getsignature() + " zgłosiła wyjątek"); } Wprowadzenie do przedmiotu (45)
46 Przykład: do czego służy ten aspekt? Jaki jest efekt użycia tego aspektu? aspect A { before(): call(* *(..)) { System.out.println("przed"); } after(): call(* *(..)) { System.out.println("po"); } } Wprowadzenie do przedmiotu (46)
47 Przykład: wersja 2 Jaki jest efekt użycia tego aspektu? aspect A { before(): call(* *(..)) { System.out.println("przed"); } after() returning: call(* *(..)) { System.out.println("po"); } } Wprowadzenie do przedmiotu (47)
48 Przykład: wersja 3 Ta wersja nie posiada tej wady... aspect A { before(): call(* *(..)) &&!within(a) { System.out.println("przed"); } after() returning: call(* *(..)) &&!within(a) { System.out.println("po"); } } Wprowadzenie do przedmiotu (48)
49 Wprowadzenie do przedmiotu (49) Plan wykładu Obiektowość Aspekty Komponenty
50 Wprowadzenie do przedmiotu (50) Obiekty a komponenty Czego jeszcze brak obiektom? Programowanie obiektowe łączenie obiektów w kodzie programu późne wiązanie wywołań opcjonalna hermetyzacja użycie polimorfizmu użycie dziedziczenia klas Programowanie komponentowe łączenie przez konfigurację późne wiązanie wywołań i ładowanie kodu na żądanie obowiązkowa hermetyzacja dziedziczenie interfejsów powtórne użycie na poziomie binariów
51 Komponent Komponent jest podstawową jednostką oprogramowania z kontraktowo (deklaratywnie) opisanymi interfejsami, i podanymi wprost zależnościami. Komponent może zostać skonfigurowany i wdrożony niezależnie od programisty, który go stworzył. Clemens Szyperski "Oprogramowanie komponentowe. Obiekty to za mało" (1998) Wprowadzenie do przedmiotu (51)
52 Wprowadzenie do przedmiotu (52) Własności komponentu Podstawowe własności komponentu Komponenty nigdy nie sprawują kontroli nad sobą zasada hollywoodzka: proszę do nas nie dzwonić, to my oddzwonimy... Kontener jest specjalnym elementem zarządzającym wszystkimi komponentami steruje procesem tworzenia komponentami rozwiązuje zależności pomiędzy komponentami zarządza cyklem życia komponentów
53 Wprowadzenie do przedmiotu (53) Przykład zawiera Sprawny Samochód musi zawierać Silnik.
54 Wprowadzenie do przedmiotu (54) Tradycyjne rozwiązywanie zależności 4. zmontuj A i B 1. utwórz komponent A komponent A (Samochód) Klient 5. zwróć zmontowane komponenty A i B 2. A zależy od B 3. utwórz komponent B komponent B (Silnik) komponent C (Przyczepa)
55 Kontener zarządzający komponentami Wprowadzenie do przedmiotu (55) Odwrócone rozwiązywanie zależności 2. znajdź A komponent A (Samochód) 3. A zależy od B Klient 1. utwórz komponent A 5. zwróć komponent A zmontowany z B 4. znajdź B komponent B (Silnik) komponent C (Przyczepa)
56 Wprowadzenie do przedmiotu (56) Wybrane sposoby rozwiązywania zależności Interface injection Setter injection Komponenty implementują dedykowany interfejs, poprzez który otrzymują obiekt służący do wyszukiwania zależności Zależności są przekazywane przez właściwości obiektu (metody setxxx() zgodne z konwencją JavaBeans)
57 Wyszukiwanie zależności poprzez interfejs public interface Serviceable { public void service(servicemanager manager); } public class Samochod implements Serviceable { private ServiceManager manager = null; private Silnik silnik = null; public void service(servicemanager manager) { this.manager = manager; } } public void zbuduj() { this.silnik = (Silnik) manager.lookup("silnik"); } Wprowadzenie do przedmiotu Apache Avalon (57)
58 Wstrzykiwanie zależności przez właściwości public class Samochod { private Silnik silnik = null; public Samochod() { } } public void setsilnik(silnik silnik) { } this.silnik = silnik; Kontener Samochód -> Silnik -> Silnik1_6 Wprowadzenie do przedmiotu (58)
59 Odwrócenie sterowania Odwrócenie sterowania pasywne API komponentu komunikacja przez interfejsy automatyczne spełnianie zależności przeniesienie odpowiedzialności za rozwiązanie zależności na kontener Wprowadzenie do przedmiotu (59)
60 Wprowadzenie do przedmiotu (60) Podsumowanie Obiektowość jest podejściem do problemu modularyzacji programu Istotą obiektowości jest pojęcie odpowiedzialności Aspekty stanowią rozszerzenie obiektowości o nowy rodzaj jednostki Komponenty, w odróżnieniu od obiektów, są zewnętrznie konfigurowalne
Programowanie aspektowe
Programowanie aspektowe Prowadzący: Bartosz Walter Programowanie aspektowe 1 Plan wykładu Rozdział zagadnień (ang. Separation of Concerns) Elementy języka AspectJ Inne implementacje AOP Programowanie aspektowe
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Bardziej szczegółowoTechnologie obiektowe
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ść
Bardziej szczegółowoKurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Bardziej szczegółowoProgramowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegółowoJęzyki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Literatura Języki i paradygmaty programowania Wykład 2 1. C. S. Horstman, G. Cornell, core Java 2 Podstawy, Helion 2003
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
Bardziej szczegółowoJęzyk programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/
Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.
Bardziej szczegółowoProgramowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to
Bardziej szczegółowoModelowanie i Programowanie Obiektowe
Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do
Bardziej szczegółowoProgramowanie aspektowe na przykładzie AspectJ JUG Poznań, Jacek Pospychała
Programowanie aspektowe na przykładzie AspectJ Plan prezentacji Co to programowanie aspektowe i AspectJ Szybki start z AspectJ (przykład) Uruchamianie aplikacji z aspektami Jak to działa Możliwości wplatania
Bardziej szczegółowoTechnologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
Bardziej szczegółowoProgramowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 O mnie prowadzący wykład: Dariusz Wardowski pokój: A334 dyżur: środa, godz. 10.00 12.00 e-mail: wardd@math.uni.lodz.pl
Bardziej szczegółowoKomputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl
Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki
Bardziej szczegółowoProjektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne
Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec
Bardziej szczegółowoWzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski
Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół
Bardziej szczegółowoProgramowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Bardziej szczegółowoProgramowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
Bardziej szczegółowoKurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/
Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Bardziej szczegółowoproblem w określonym kontekście siły istotę jego rozwiązania
Wzorzec projektowy Christopher Alexander: Wzorzec to sprawdzona koncepcja, która opisuje problem powtarzający się wielokrotnie w określonym kontekście, działające na niego siły, oraz podaje istotę jego
Bardziej szczegółowoDiagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.
Umiejętność czytania oraz tworzenia diagramów klas UML jest podstawą w przypadku zawodu programisty. Z takimi diagramami będziesz spotykał się w przeciągu całej swojej kariery. Diagramy klas UML są zawsze
Bardziej szczegółowoDokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoProgramowanie komponentowe
Programowanie komponentowe Prowadzący: Bartosz Walter Programowanie komponentowe 1 Plan wykładu Pojęcie komponentu Rozwiązywanie zaleŝności Metody wstrzykiwania zaleŝności Cykl Ŝycia komponentu Przykłady
Bardziej szczegółowoZaawansowane programowanie w języku C++ Klasy w C++
Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń
Bardziej szczegółowoWzorce projektowe. dr inż. Marcin Pietroo
Wzorce projektowe dr inż. Marcin Pietroo Adapter - strukturalny wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach - adapter przekształca interfejs
Bardziej szczegółowoPolimorfizm. dr Jarosław Skaruz
Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne
Bardziej szczegółowoAplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów
Bardziej szczegółowoProgramowanie obiektowe
Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka
Bardziej szczegółowoJAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Bardziej szczegółowoPoczątki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8
Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick
Bardziej szczegółowoMateriały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja
Bardziej szczegółowoEnkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
Bardziej szczegółowoJAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Bardziej szczegółowoDiagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com
Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,
Bardziej szczegółowoPico. Wstęp do kontenerów IoC.
Pico Wstęp do kontenerów IoC Michal.Malecki@man.poznan.pl Plan prezentacji Wzorzec Inversion of Control (IoC) Wyszukiwanie zależności (Dependency Injection) PicoContainer Case Study Podsumowanie Inversion
Bardziej szczegółowo10. Programowanie obiektowe w PHP5
Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE
Bardziej szczegółowoIteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1
Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1 Zofia Kruczkiewicz 1 Zunifikowany iteracyjno- przyrostowy proces tworzenia oprogramowania kiedy? Przepływ działań Modelowanie przedsiębiorstwa
Bardziej szczegółowoWykład 7: Pakiety i Interfejsy
Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,
Bardziej szczegółowoWykład Ćwiczenia Laboratorium Projekt Seminarium
WYDZIAŁ ELEKTRONIKI KARTA PRZEDMIOTU Nazwa w języku polskim Języki programowania Nazwa w języku angielskim Programming languages Kierunek studiów (jeśli dotyczy): Informatyka - INF Specjalność (jeśli dotyczy):
Bardziej szczegółowoProgramowanie obiektowe, wykład nr 6. Klasy i obiekty
Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto
Bardziej szczegółowoZofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1
Charakterystyka oprogramowania obiektowego 1. Definicja systemu informatycznego 2. Model procesu wytwarzania oprogramowania - model cyklu życia oprogramowania 3. Wymagania 4. Problemy z podejściem nieobiektowym
Bardziej szczegółowoPodstawy Języka Java
Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących
Bardziej szczegółowoProgramowanie w języku Java WYKŁAD
Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 24.02.2014 WYKŁAD 1 Wzorce projektowe Znaczenie
Bardziej szczegółowoJęzyki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Bardziej szczegółowoPHP 5 język obiektowy
PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc
Bardziej szczegółowoProgramowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h
Programowanie II Lista 3 Modyfikatory dostępu plik TKLientBanku.h plik z funkcją main Przyjaźń Dziedziczenie Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Bardziej szczegółowoAnaliza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
Bardziej szczegółowoProgramowanie obiektowe. Wprowadzenie
1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Bardziej szczegółowoProgramowanie obiektowe
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
Bardziej szczegółowoKlasy abstrakcyjne i interfejsy
Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie
Bardziej szczegółowoWprowadzenie do systemów informacyjnych
Uwagi ogólne: Wprowadzenie do systemów informacyjnych Projektowanie obiektowe Obiektowość jest nową ideologią, która zmienia myślenie realizatorów SI z zorientowanego na maszynę na zorientowane na człowieka.
Bardziej szczegółowoInformacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Bardziej szczegółowoTypy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura
Programowanie komputerów Programowanie obiektowe. Typy zmiennych proste i złożone Typy zmiennych "wbudowane", tj. identyfikowane przez słowa kluczowe, są określane jako proste: int short long float double
Bardziej szczegółowoProgramowanie komponentowe 5
Budowa warstwy klienta w architekturze typu klient-serwer zbudowanych z komponentów typu EE - klient desktopowy i internetowy. Zastosowanie komponentów opartych na technologii EJB 3.2. na podstawie https://docs.oracle.com/javaee/7/jeett.pdf
Bardziej szczegółowoProgramowanie obiektowe
Wykład 12 Marcin Młotkowski 16 maja 2018 Plan wykładu 1 Analiza obiektowa Dziedziczenie Dziedziczenie a składanie 2 Marcin Młotkowski 482 / 537 Dziedziczenie Dziedziczenie a składanie Plan wykładu 1 Analiza
Bardziej szczegółowo1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Bardziej szczegółowoHistoria modeli programowania
Języki Programowania na Platformie.NET http://kaims.eti.pg.edu.pl/ goluch/ goluch@eti.pg.edu.pl Maszyny z wbudowanym oprogramowaniem Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu
Bardziej szczegółowoPolimorfizm, metody wirtualne i klasy abstrakcyjne
Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,
Bardziej szczegółowoKurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016
Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac
Bardziej szczegółowoKlasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13
Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods
Bardziej szczegółowoUML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.
UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 4 - wzorce projektowe. dr inż. Robert Nowak - p. 1/18 Powtórzenie klasy autonomiczne tworzenie nowych typów: dziedziczenie i agregacja dziedziczenie: przedefiniowywanie
Bardziej szczegółowoProgramowanie Obiektowe i C++
Programowanie Obiektowe i C++ Marcin Benke 2.10.2006 Dzisiaj Co umiemy Paradygmaty programowania Co będzie na wykładach Zasady zaliczania Programowanie obiektowe Co umiemy Programowałem w C++ Programowałem
Bardziej szczegółowoZdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu
Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja
Bardziej szczegółowoProgramowanie obiektowe i zdarzeniowe
Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie
Bardziej szczegółowoRok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -
Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3 Wydział: Zarządzania Kierunek: Informatyka i Ekonometria Specjalność: - Poziom studiów: Studia I stopnia
Bardziej szczegółowoWykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.
Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów. Paweł Świątek Agenda 1. Sprawy organizacyjne 2. Zasady zaliczenia 3. Cele kursu 4.
Bardziej szczegółowoProgramowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
Bardziej szczegółowoOprogramowanie systemów równoległych i rozproszonych Wykład 7
Wykład 7 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Zdalne wywołanie
Bardziej szczegółowoProjektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016
Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016 1 Wzorce strukturalne 1.1 Facade Motto: uproszczony interfejs dla podsystemu z wieloma interfejsami class SmtpFacade
Bardziej szczegółowoKonstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
Bardziej szczegółowoDziedziczenie jednobazowe, poliformizm
Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie
Bardziej szczegółowoObiektowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012
Obiektowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012 Obiekt jest abstrakcją pewnego konkretnego bytu ze świata rzeczywistego, reprezentujący rzecz (obiekt fizyczny), pojęcie
Bardziej szczegółowoWykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 1: Wprowadzenie do programowania obiektowego Dr hab. inż. Stanisław Deniziak, prof.pk, p.101, 410 sdeniziak@pk.edu.pl Informacje organizacyjne Wykład 30h Zaliczenie: egzamin
Bardziej szczegółowoKlasy abstrakcyjne, interfejsy i polimorfizm
Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z
Bardziej szczegółowoModelowanie obiektowe
Modelowanie obiektowe ZPO 2018/2019 Dr inż. W. Cichalewski Materiały wykonane przez W. Tylman Diagramy klas Diagramy klas Zawiera informacje o statycznych związkach między elementami (klasami) Są ściśle
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Wykład 7 - sprytne wskaźniki. 20 kwietnia 2007 Potrzeba współdzielenia kodu źródłowego Pojęcia niezależne od typu: kolekcje (np. listy) algorytmy (np. znajdowania największego elementu) Szablony mechanizm
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoObiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Bardziej szczegółowoProgramowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Bardziej szczegółowo1 Atrybuty i metody klasowe
1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich
Bardziej szczegółowoDefiniowanie własnych klas
Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:
Bardziej szczegółowoDziedziczenie. Tomasz Borzyszkowski
Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 3 - polimorfizm. dr inż. Robert Nowak - p. 1/14 Powtórzenie Powtórzenie: klasy autonomiczne: konstruktor, konstruktor kopiujacy, operator przypisania, destruktor
Bardziej szczegółowoPODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne
Przykład 1 metody i atrybuty statyczne public class Napis1 { static String wynik; public static void Inicjuj() {wynik = ""; PODEJŚCIE OBIEKTOWE public static void Dopisz_do_wyniku(char ch) { wynik+="\nkod
Bardziej szczegółowoInformatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)
Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Programowanie obiektowe (Java) Nazwa modułu w języku angielskim Object oriented
Bardziej szczegółowo