Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie Zaawansowane. Bartosz Talma: - Na czym polega OOP i jakie są jego trzy podstawowe filary? - Na czym polega dziedziczenie? - Do czego wykorzystujemy.

Podobne prezentacje


Prezentacja na temat: "Programowanie Zaawansowane. Bartosz Talma: - Na czym polega OOP i jakie są jego trzy podstawowe filary? - Na czym polega dziedziczenie? - Do czego wykorzystujemy."— Zapis prezentacji:

1 Programowanie Zaawansowane

2 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.

3 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

4 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”).

5 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).

6 ● Inaczej zawieranie (relacja „has-a”). ● Forma wielokrotnego wykorzystania kodu. ● Np. Pracownik ma Świadczenia. W klasie Pracownik jest pole Świadczenia (czyli Pracownik zawiera Świadczenia).

7 ● 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.

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

9 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.

10 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.

11 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.

12 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.

13 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

14 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.

15 Dziękujemy za uwagę.


Pobierz ppt "Programowanie Zaawansowane. Bartosz Talma: - Na czym polega OOP i jakie są jego trzy podstawowe filary? - Na czym polega dziedziczenie? - Do czego wykorzystujemy."

Podobne prezentacje


Reklamy Google