Programowanie Zaawansowane

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

Programowanie obiektowe
Klasy abstrakcyjne i interfejsy
Programowanie obiektowe
Programowanie obiektowe
Metody wirtualne.
Wzorce.
Zaawansowane metody programowania – Wykład V
Programowanie w środowisku sieciowym
Programowanie obiektowe w Javie
OOP - programowanie zorientowane obiektowo w VB.NET
Serwery Aplikacji ASP .NET Web Objects Arkadiusz Popa.
Marcin Kujawa Michał Łobarzewski
Dziedziczenie i jego rodzaje
C++ wykład 5 ( ) Dziedziczenie.
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Typy prywatne 1 Typy prywatne W Adzie typy prywatne (private types) służą do bezpiecznego udostępniania danych zdefiniowanych w pakiecie, z którego korzysta.
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład II
Podstawy programowania II
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Źródła: podręcznikopracował: A. Jędryczkowski.
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
WPROWADZENIE W ŚWIAT OBIEKTÓW
Java – coś na temat Klas Piotr Rosik
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
INTERFEJSY I KLASY WEWNĘTRZNE
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Projektowanie obiektowe
Warsztaty C# Część 6 Grzegorz Piotrowski Grupa .NET PO
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Kurs języka C++ – wykład 9 ( )
Programowanie w języku C++
Kurs języka C++ – wykład 5 ( )
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Diagram klas Kluczowymi elementami są: klasy (class)
Klasy ( uzupełnienie ). Definicja klasy Klasa jest zbiorem logicznie powiązanych danych i funkcji, przeznaczonych do realizacji konkretnego zadania; Zamknięcie.
Programowanie zaawansowane Zaawansowane konstrukcje języka C#
Programowanie obiektowe
Waldemar Bartyna Pytania egzaminacyjne 1.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Zakres Wzorce projektowe - kreacyjne -Factory Method -Abstract Factory.
Dziedziczenie wielobazowe. dana klasa może mieć kilka bezpośrednich klas bazowych: dana klasa może mieć kilka bezpośrednich klas bazowych: kolorpołożenie.
Łukasz Bieszczad Mateusz Gałązka Karol Włodarek
Zestaw pytań nr. 3 Typy generyczne Wyjątki OPRACOWALI: JAKUB GRYCZEWSKIKINGA ROSA DANIEL KAPTEJNYWOJCIECH ŁĘCZYCKI
Programowanie zaawansowane
Wykład 4 Programowanie obiektowe. Tworzenie własnych obiektów Słowo kluczowe this W JavaScript można tworzyć własne obiekty. Wykorzystuje się tu zapis.
Partnerstwo dla Przyszłości 1 Lekcja 27 Klasy i obiekty.
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
Waldemar Bartyna Pytania egzaminacyjne 1.
InMoST: Innowacyjne metody wytwarzania oprogramowania – II edycja (c) Bartosz Walter Wprowadzenie do obiektowości (1) Plan szkolenia – Część.
Temat: Tworzenie bazy danych
Inżynieria oprogramowania Wzorce konstrukcyjne WWW: Jacek Matulewski Instytut Fizyki, UMK.
Programowanie Obiektowe – Wykład 6
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
(według:
Programowanie Obiektowe – Wykład 2
PGO Interfejsy Michail Mokkas.
PGO - Projektowanie i implementacja pierwszych klas
PGO Dziedziczenie Michail Mokkas.
PGO Przeciążanie metod i konstruktorów
PGO Porównywanie obiektów
Zapis prezentacji:

Programowanie Zaawansowane Filary OOP Programowanie Zaawansowane

Bartosz Talma: - Na czym polega OOP i jakie są jego trzy podstawowe filary? - Na czym polega dziedziczenie? - Do czego wykorzystujemy słowa kluczowe protected, base, sealed? Marcin Kowalczyk: - Na czym polega agregacja? - Na czym polega zagnieżdżanie? - Na czym polega delegacja? Kamil Świątek: - Co to są abstrakcyjne klasy bazowe? - Na czym polega polimorfizm? - W jakich sytuacjach jest wykorzystywany? Rafał Połaski: - Do czego służą słowa kluczowe abstract, virtual, override i new? - Czym różni się nadpisywanie od zasłaniania składowych? - Do czego służą słowa kluczowe as i is? Łukasz Kordys: sprawdzenie wszystkiego.

Na czym polega OOP i jakie są jego trzy podstawowe filary? Object-Oriented Programming to paradygmat programowania określający, że programy definiujemy za pomocą obiektów, czyli elementów łączących stan z zachowaniem. Podstawowe filary OOP: Hermetyzacja Dziedziczenie Polimorfizm

Na czym polega dziedziczenie? Umożliwia definiowanie i tworzenie szczegółowych klas na podstawie bardziej ogólnych. Polega na tym, że nie trzeba przepisywać całej funkcjonalności, lecz tylko tę, której nie ma obiekt ogólniejszy. Wykorzystując polimorfizm możemy nadpisać funkcjonalność z klasy bazowej. Forma wielokrotnego wykorzystania kodu (relacja „is-a”).

Do czego wykorzystujemy słowa kluczowe protected, base, sealed? protected - modyfikator dostępu członka klasy; obiekt chroniony. Oznacza dostępność w swojej klasie oraz klasach bezpośrednio po niej dziedziczących. base - używany do uzyskania dostępu do członków klasy bazowej z klasy bezpośrednio po niej dziedziczącej sealed - uniemożliwia tworzenie klas pochodnych danej klasy (blokuje dziedziczenie).

Na czym polega agregacja? Inaczej zawieranie (relacja „has-a”). Forma wielokrotnego wykorzystania kodu. Np. Pracownik ma Świadczenia. W klasie Pracownik jest pole Świadczenia (czyli Pracownik zawiera Świadczenia).

Na czym polega zagnieżdżanie? Odmiana relacji zawierania („has-a”). Typ zagnieżdżany (wewnętrzny) jest uważany za składową klasy zagnieżdżającej (zewnętrznej) Na zewnątrz, nazwę klasy zagnieżdżonej musimy poprzedzić nazwą klasy zagnieżdżającej.

Na czym polega delegacja? Delegacja polega na dodawaniu składowych do klasy zawierającej, które korzystają z funkcji wewnętrzengo obiektu. Aby udostępnić funkcje wewnętrznego obiektu światu zewnętrznemu. Udostępnianie funkcjonalności obiektu w jednej klasy w innej za pomocą: Publicznej właściwości, Odpowiednio zdefiniowanej metody.

Co to są abstrakcyjne klasy bazowe? Abstrakcyjne klasy bazowe są zadeklarowane za pomocą słowa abstract i stanowią bazę dla klas, które będą dziedziczyć po niej. Nie możemy utworzyć obiektu kalsy abstrakcyjnej, ponieważ może ona zaweirąc metody abstrakcyjne.

Na czym polega polimorfizm? Polimorfizm (wiele form) polega na tym, że pod nazwią zmiennej lub nazwą metody mogą się kryć ich różne formy t.z. obiekty różnych typów w pamięci lub różne implementacje metod. Pierwsza systuacja dotyczy dziecziczenia, gdy pod referencję do obiektu klasy bazowej możemy przypsywać obiekty klas po niej dziedziczących. Druga sytuacja dotyczy dziedziczenia, gdy w klasachy potomnych możemy nadpisywać virtualne lub abstrakcyjne metody z klasy bazowej. To, co faktycznie dana zmienna przechowuje, lub którą z implementacji danej metody należy wywołać, jest ustalane w trakcie wykonania programu.

W jakich sytuacjach wykorzystujemy polimorfizm? Głównym przeznaczeniem polimorfizmu jest znaczne skrócenie i uproszczenie kodu programu oraz zwiększenie jego rozszerzalności i elastyczności. Przykład zastosowania to wywołanie metod klas zebranych w kolekcji lub tablicy. Mechanizm polimorfizmu ustala w trakcie wykonania, jaki obiekt faktycznie został do tablicy dodany , i którą wersje metody wywołać. Kolejnym przykłądem jest użycie referencji do klasy bazowej lub interfejsu jako typu parametru metody. Dzięki temu zabiegowi, daną metodę można wywołąć na dowolnym obiekcie klasy dziedziczącej po wskazanej klasie bazowej, lub dowolnym obiekcie klasy implementującej wskazany interfejs.

Do czego służą słowa kluczowe abstract, virtual, override i new? Słowa kluczowe virtual, abstract i override służą do nadpisywania metod czyli definiowania własnych wersji metod z klasy bazowej. Virtual - używamy gdy chcemy w klasie bazowej zdefiniować metodę która może ale nie musi by przesłaniana przez podklasy Override - używamy gdy chcemy w klasie pochodnej zmienić implementację metody wirtualnej lub zaimplementować metodę abstrakcyjną. Abstract - używamy gdy chcemy wymusić brak możliwości tworzenia instancji danej klasy oraz gdy chcemy zdefiniować abstrakcyjną metoe nie posiadającą ciała, która musi zostać zaimplementowana w klasie dzidziczącej po klasie abstrakcyjnej, w której metodę abstrakcyjną zadeklarowaliśmy, w klasie implementującej interfejs, w którym dana dana metoda abstrakcyjna została zadeklarowana. New - służy do powoływania instancji klasy oraz przesłaniania metod odziedziczonych po klasie bazowej, w odróżnieniu od nadpisywania.

Czym różni się nadpisywanie od zasłaniania składowych? Zasłanianie składowych ma miejsce gdy klasa pochodna zdefiniuje składową identyczną ze składową zdefiniowaną w klasie bazowej (taką składową możemy oznaczyć słówiem new). Nadpisywanie składowych jest operacją jawną wykonywaną poprzez zadeklarowanie składowej używając słowa kluczowego override. W przypadku zasłonięcia, implementację klasy bazowej można wywołać poprzez zastosowanie jawnego rzutowania. Natomiast przy nadpisywaniu wystarczy słowo kluczowe base. O co w tym chodzi Rafał? WB

Do czego służą słowa kluczowe as i is? as - (jako)Pozwala na szybkie sprawdzenie w czasie wykonania programu kompatybilności dwóch wskazanych typów. W przypadku niezgodności, wartością zwracaną jest null. is - (jest)Pozwala na ustalenie, czy dwa podane elementy są kompatybilne. W przypadku niezgodności, wartością zwracaną jest false.

Koniec Dziękujemy za uwagę.