Narzędzia 2. dr inż. Tadeusz Jeleniewski
|
|
- Feliks Orłowski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Kolekcje c.d. - Lista - Kolejka - Stos - Słownik Tworzenie i użycie klas "własnych" - Modyfikatory dostępu - Argumenty metod - Tworzenie obiektów - Hermetyzacja danych akcesory - Składowe statyczne - Usuwanie obiektów - Przeciążanie metod i konstruktorów - Specjalizacja i uogólnianie - Dziedziczenie - Polimorfizm - Klasy abstrakcyjne - Klasy zamknięte - Klasa główna - Object 1
2 Klasa List Poważną niedogodnością tablic jako kolekcji danych jest fakt, że muszą one mieć stały rozmiar. Programista musi wiedzieć z góry ile miejsca powinien zarezerwować na pomieszczenie wszystkich przetwarzanych danych. Problem ten nie występuje w klasie List. Jest to zbiór (kolekcja) danych, których liczba może się dynamicznie zmieniać. Klasa ta udostępnia szereg wygodnych w użyciu metod i właściwości zebrano je w tabeli
3 Tabela 2.1. Metody i właściwo ści klasy List Metoda lub właściwość Capacity Count Item() Add() AddRange() BinarySearch() Clear() Contains() CopyTo() Exists() Find() FindAll() GetEnumerator() GetRange() IndexOf() Insert() InsertRange() LastIndexOf() Remove() RemoveAt() RemoveRange() Reverse() Sort() ToArray() TrimToSize() Działanie Właściwość do pobierania i ustawiania liczby elementów, które może zawierać lista Zwraca liczbę aktualnie przechowywanych elementów Pobiera element o określonym indeksie lub przypisuje do niego wartość Metoda publiczna dodaje element do listy Publiczna metoda, która dodaje na koniec listy elementy z ICollection Wyszukuje binarnie określony element w posortowanej liście Usuwa z listy wszystkie elementy Określa czy dany element znajduje się na liście Kopiuje listę do jednowymiarowej tablicy Sprawdza czy element znajduje się na liście Zwraca pierwsze wystąpienie elementu na liście Zwraca wszystkie dane elementy występujące na liście Zwraca licznik, który umożliwia przechodzenie po elementach listy Kopiuje zakres elementów do nowej listy Zwraca indeks pierwszego wystąpienia danej wartości na liście Dodaje element do listy Dodaje zakres elementów kolekcji do listy Zwraca indeks ostatniego wystąpienia wartości na liście Usuwa z listy pierwsze wystąpienie określonego elementu z listy Usuwa element o podanym indeksie Usuwa zakres elementów Odwraca kolejność elementów listy Sortuje listę Kopiuje elementy listy do nowej tablicy Ustawia pojemność (właściwość Capacity) na aktualną liczbę elementów listy
4 4
5 5
6 6
7 Kolejka Kolejka jest kolekcją typu FIFO (First-In, First-Out ) Metody i właściwości klasy Queue zebrano w tabeli 2.2. Metoda lub właściwość Count Clear() Contains() CopyTo() Dequeue() Enqueue() GetEnumerator() Peek() ToArray() Działanie Właściwość publiczna, która zwraca liczbę elementów kolejki Usuwa z kolejki wszystkie obiekty Sprawdza, czy dany element znajduje się w kolejce Kopiuje elementy kolejki do istniejącej tablicy jednowymiarowej Usuwa i zwraca element znajdujący się na początku kolejki Dodaje obiekt na koniec kolejki Zwraca licznik kolejki Zwraca element znajdujący się na początku kolejki, ale go nie usuwa Kopiuje elementy do nowej tablicy Listing 2.2 zawiera przykład prostej aplikacji ilustrującej operacje na kolejce. Umieszczono tam specjalnie oznaczone komentarze, które w czasie kompilacji pozwolą automatyczne utworzyć plik XML stanowiący "dokumentację" programu 7
8 8
9 9
10 10
11 11
12 Stos Stos jest kolekcją typu LIFO (Last-In, First-Out ) Metody i właściwości klasy Stack zebrano w tabeli 2.3. Metoda lub właściwość Count Clear() Clone() Contains() CopyTo() GetEnumerator() Peek() Pop() Push() ToArray() Działanie Właściwość publiczna, która zwraca liczbę elementów stosu Usuwa ze stosu wszystkie obiekty Tworzy kopię stosu Sprawdza, czy dany element znajduje się na stosie Kopiuje elementy stosu do istniejącej tablicy jednowymiarowej Zwraca licznik stosu Zwraca element znajdujący się na szczycie stosu, ale go nie usuwa Usuwa i zwraca obiekt ze szczytu stosu Wstawia obiekt na szczyt stosu Kopiuje elementy do nowej tablicy 12
13 13
14 14
15 15
16 Słownik Słownik jest kolekcją, która zawiera wartości powiązane z kluczami. Klasa słownika udostępniana przez.net pozwala łączyć dowolny typ klucza (łańcuchy znaków, liczby całkowite, obiekty itp.) z wartościami dowolnego typu. Właściwości i metody klasy Dictionary pokazano w tabeli 2.4 Metoda lub właściwość Count Clear() Item() Keys Values Add() ContainsKey() ContainsValue() GetEnumerator() GetObjectData() Remove() Działanie Właściwość publiczna, która zwraca liczbę elementów słownika Usuwa ze słownika wszystkie obiekty Mechanizm indeksowania słownika Publiczna właściwość, która zwraca kolekcję zawierającą klucze słownika Publiczna właściwość, która zwraca kolekcję zawierającą wartości słownika Dodaje element o określonym kluczu i wartości Sprawdza, czy dany klucz znajduje się w słowniku Sprawdza, czy dana wartość znajduje się w słowniku Zwraca licznik słownika Obsługuje intefejs Iserializable i zwraca dane potrzebne do serializacji słownika Usuwa element o podanym kluczu 16
17 17
18 Tworzenie i użycie klas "własnych" Języki obiektowe charakteryzują się możliwością tworzenia nowych typów danych. Trzy najważniejsze cechy klas to: hermetyzacja właściwości i zachowań, polimorfizm i dziedziczenie. Elementy klasy zachowanie i właściwości to składowe klasy. Utworzenie klasy to kolejno jej deklaracja a następnie definicja jej metod i pól. Pełna składnia deklaracji klasy ma postać: [atrybuty][modyfikatory dostępu] class identyfikator [:klasa bazowa[.interfejsy]]{ciało klasy} W deklaracji klasy modyfikatorem dostępu jest zwykle słowo kluczowe public Obiekt to egzemplarz klasy. Różnica pomiędzy klasą a obiektem jest taka jak pomiędzy np. typem int a zmienną typu int. Przykład deklaracji klasy, definicji i jej użycia przedstawia listing
19 19
20 Tabela 2.5. Modyfikatory dostępu Modyfikator dostępu public private protected internal protected internal Ograniczenia Brak ograniczeń. Składowe dostępne dla wszystkich metod wszystkich klas Składowe prywatne klasy A są dostępne tylko dla metod tej klasy Składowe chronione klasy A są dostępne dla metod klasy A i dla metod klas potomnych A Składowe wewnętrzne klasy A są dostępne dla metod wszystkich klas z podzespołu klasy A Składowe chronione wewnętrzne klasy A są dostępne dla metod tej klasy, dla metod klas potomnych A oraz dla wszystkich metod wszystkich klas z podzespołu A 20
21 Domyślnym poziomem dostępu do składowych klasy jest poziom prywatny. Listing 2.5 jest zatem poprawny. Wszystkie pola składowe klasy Czas są prywatne. Dla zwiększenia czytelności źródła należy wyraźnie zaznaczyć nawet domyślny prywatny tryb dostępu. Deklaracje pól składowych klasy Czas powinny zatem wyglądać tak:... private int Rok; private int Miesiąc; private int Dzień; private int Godzina; private int Minuta; private int Sekunda; // Zmienne prywatne... Klasa Tester i metoda WyświetlCzas są publiczne, mogą z nich korzystać inne klasy. 21
22 Argumenty metod Metody mogą przyjmować dowolną liczbę parametrów. Przykład przekazywania wartości do metody za pośrednictwem parametrów pokazuje listing
23 Tworzenie obiektów Obiekty są typami referencyjnymi, przechowywane są na stercie, a tworzy się je za pomocą operatora new, np. Czas t = new Czas(); W ten sposób utworzono obiekt klasy Czas znalazł się on na stercie, a wartość zmiennej t jest jego adresem - referencją na pewien anonimowy obiekt w obszarze sterty. Zmienna t nie zawiera "wartości" obiektu Czas, a tylko jego adres. Zawsze, kiedy powstaje egzemplarz klasy następuje wywołanie specjalnej metody konstruktora. Definicja konstruktora jest częścią klasy lub domyślnie udostępnia ją CLR. Zadaniem konstruktora jest utworzenie obiektu danej klasy i nadanie mu prawidłowego stanu. Jeżeli w deklaracji klasy (np. klasy Czas) nie zdefiniowano konstruktora, to kompilator automatycznie tworzy tzw. domyślny konstruktor klasy, który jedynie tworzy obiekt nie wykonując żadnych innych czynności. Często jednak potrzebny jest specyficzny konstruktor klasy, który przyjmuje argumenty, co pozwala określić początkowy stan obiektu. Konstruktor jest metodą o takiej samej nazwie jak klasa; nie zwraca żadnej wartości i na ogół jest publiczny. Listing 2.7 przedstawia modyfikację klasy Czas dodano do niej konstruktor. 23
24 24
25 Hermetyzacja danych akcesory Bezpośredni dostęp spoza klasy do prywatnych danych składowych pól klasy opatrzonych atrybutem private. Warto jednak pozostawić dane składowe jako prywatne co zapobiega przypadkowym zmianom ich wartości lub próbie odczytu danych przez obiekt zewnętrzny do tego nieuprawniony. Hermetyzacja danych polega na oddzieleniu stanu klasy od metod zmieniających ten stan. Niektóre pola prywatne warto jednak udostępnić dla wykonywania na nich w sposób świadomy i kontrolowany określonych operacji. Do tego celu służą elementy klasy zwane akcesorami. Udostępniają one klientom prosty interfejs, który wygląda jak zwykła zmienna składowa. Jednocześnie są metodami, które pozwalają ukryć dane, zabezpieczyć je przed niekontrolowanym, przypadkowym odczytem, bądź co gorsze nieporządanymi zmianami wartości. Takie zabezpieczenie danych zwane hermetyzacją jest cechą dobrego programowania obiektowego. Tworzenie i zastosowanie właściwości pełniących rolę akcesorów ilustruje listing
26 26
27 27
28 Składowe statyczne Składowe klasy (zmienne, metody, zdarzenia itp.) mogą być: - Składowymi egzemplarza (obiektu), - Składowymi statycznymi (klasy). Składowe egzemplarza są związane z konkretnym obiektem (egzemplarzem klasy), a składowe statyczne są elementem klasy. - Dostęp do składowych statycznych uzyskuje się przez nazwę klasy, - dostęp do składowych egzemplarza przez nazwę obiektu. W deklaracji składowej statycznej słowem kluczowym static określa się składowe statyczne. Metody statyczne działają na klasach, a nie na ich egzemplarzach (obiektach). Przykłady metod statycznych: WriteLine, ReadKey w klasie Console, Parse w strukturze np. Double Metoda Main jest statyczna. Metody statyczne nie mają referencji this bo nie istnieje obiekt, na który ta referencja mogłaby wskazywać. Metody statyczne nie mają bezpośredniego dostępu do składowych niestatycznych. Metoda Main może wywołać metodę niestatyczną tylko wtedy, gdy wcześniej utworzy obiekt (patrz listing 2.9). 28
29 29
30 30
31 Usuwanie obiektów Język C# obsługuje automatyczne odzyskiwanie pamięci na ogół nie jest konieczne jawne usuwanie obiektów (tzw. garbage collection). Jeżeli obiekt zawiera tzw. niezarządzane zasoby (są nimi np. pliki), to trzeba je zwolnić kiedy nie są już potrzebne. Do niejawnej kontroli niezarządzanych zasobów służą destruktory. Wywołuje je mechanizm odzyskiwania pamięci w momencie usuwania obiektu. Destruktor powinien zwalniać zasoby wykorzystywane przez dany obiekt, ale nie może zmieniać stanu innych obiektów. Zmniejsza wydajność programu. Destruktora nie można wywoływać samodzielnie za jego wywołanie odpowiada mechanizm odzyskiwania pamięci. Mechanizm odzyskiwania pamięci przechowuje listę obiektów zawierających destruktor. Aktualizacja tej lista następuje w momencie powstania lub usunięcia obiektu. Po zwróceniu do systemu pamięci zajmowanej przez obiekt system umieszcza go w kolejce obiektów czekających na usunięcie i dopiero na takim obiekcie system wykonuje operacje destruktora. 31
32 Przykładowy kod destruktora w klasie np. MojaKlasa ma postać: ~MojaKlasa() { // potrzebne operacje } Kompilator języka C# przekształci ten kod na: protected override void Finalize() { try { // potrzebne operacje } finally { base.finalize(); } } 32
33 Destruktora nie można wywoływać samodzielnie w przypadku obsługi "cennych" niezarządzanych zasobów (np. plików) trzeba użyć interfejsu Idisposable. Interfejs ten wymaga, aby klasy dziedziczące go zawierały definicję metody Dispose() Jeżeli jest dostępna ta metoda, to system nie czeka na wywołanie destruktora, a wywołuje metodę Dispose(). Jeżeli udostępniono metodę Dispose(), to należy zablokować mechanizm odzyskiwania pamięci tak aby nie wywoływał destruktora. W tym celu należy wywołać statyczną metodę GC.SuppressFinalize() z argumentem this (referencja na usuwany obiekt). Przykład ilustruje listing
34 34
35 35
36 Przeciążanie metod i konstruktorów W przypadku konstruktorów, ale również innych metod w klasie wygodnym rozwiązaniem jest definiowanie i używanie kilku funkcji o tej samej nazwie. Sygnatura metody to jej nazwa i lista parametrów. Dwie metody mają różne sygnatury, jeżeli mają różne nazwy lub różne listy parametrów. Klasa może zawierać dowolną liczbę metod jeżeli każda z nich ma niepowtarzalną sygnaturę. Przykład klasy z dwoma konstruktorami (przeciążonymi) przedstawia listing Jeden z tych konstruktorów przyjmuje obiekt typu DateTime a drugi 6 liczb całkowitych. 36
37 37
38 38
39 Specjalizacja i uogólnianie Klasy i obiekty (egzemplarze klas) istnieją w sieci zależności i związków (relacji). Specjalizacja to relacja jest-czymś np. pies jest ssakiem. Wg tego stwierdzenia pies jest specjalnym rodzajem ssaka ma wszystkie cechy ssaka, ale oprócz tego jeszcze parę innych właściwych tylko dla psów (canine domesticus). Kot jest też ssakiem i ma wiele cech wspólnych z psem, ale też kilka właściwych tylko dla kotów. Do graficznej ilustracji relacji specjalizacji i uogólniania, a ogólnie do opisu systemów często wykorzystuje się tzw. zunifikowany język modelowania (UML Unified Modeling Language ). Przykładową relację specjalizacji zapisaną w notacji UML pokazano na rysunku
40 Rys.2.1. Relacja jest-czymś 40
41 Dziedziczenie W C# relacja specjalizacji jest realizowana za pomocą dziedziczenia. Stwierdzenie, że klasa ListBox dziedziczy po klasie Control oznacza, że klasa ListBox jest wyspecjalizowaną wersją klasy Control. Klasę Control nazywa się klasą bazową a klasę ListBox klasą pochodną lub potomną. Klasa ListBox dziedziczy cechy i zachowania klasy Control, ale oprócz tego może posiadać też wyspecjalizowane składowe. Przykład klasy bazowej i klasy potomnej pokazuje listing
42 42
43 43
44 Polimorfizm Najważniejszym aspektem dziedziczenia jest polimorfizm. Oznacza on możliwość używania typu w wielu formach, niezależnie od szczegółów klas. Aby utworzyć metodę polimorficzną, należy ją oznaczyć jako wirtualną w klasie bazowej. W przykładzie 2.14 taką metodą polimorficzną jest metoda Wyświetl, której nazwa w klasie bazowej PUNKT_2D została poprzedzona słowem kluczowym virtual. Dzięki temu w każdej klasie potomnej można umieścić nową wersję tej metody. W klasie PUNKT_3D znalazła się metoda Wyświetl przeznaczona do wyświetlania współrzędnych punktu w przestrzeni trójwymiarowej. W deklaracji tej metody pojawiło się słowo kluczowe override, które powoduje, że metoda w klasie potomnej o takiej samej nazwie jak metoda w klasie bazowej "przesłania" metodę bazową. Słowo base w definicji konstruktora klasy potomnej oznacza wykorzystanie konstruktora bazowego jako części konstruktora obiektu klasy potomnej. Uwaga! Słowo base odwołujące się do konstruktora klasy bazowej umieszczono po znaku dwukropka, co oznacza, że konstruktor klasy potomnej dziedziczy metodę konstruktora bazowego. 44
45 45
46 46
47 Przykład polimorfizmu przedstawia listing 2.15 W tablicy zbiór zadeklarowanej jako kolekcja obiektów klasy bazowej Kontrolka umieszczono zarówno obiekt klasy bazowej jak i obiekty obydwu klas potomnych. System prawidłowo rozpoznał i wybrał odpowiednią metodę wirtualną do wyświetlenia informacji o konkretnym obiekcie. W metodzie Wyświetl, która w klasie potomnej Lista przesłania metodę Wyświetl klasy bazowej, użyto słowa kluczowego base do odwołania się do metody z klasy bazowej, a ta jest tutaj częścią definicji metody wirtualnej. Klasy potomne nie dziedziczą konstruktorów. W konstruktorze klasy pochodnej konieczne jest jawne wywołanie konstruktora klasy bazowej. W przypadku konstruktora domyślnego robi to automatycznie kompilator. Każdy konstruktor jawny w klasie potomnej musi wywoływać jeden z konstruktorów klasy bazowej. Do tego celu wykorzystuje się słowo kluczowe base. 47
48 Klasy abstrakcyjne W przykładzie pokazanym na listingu 2.15 każda klasa potomna klasy Kontrolka powinna zawierać własną wersję metody Wyświetl. W pokazanym przykładzie nie istnie mechanizm, który zmusiłby programistę do takiego postępowania. Aby wymusić tworzenie nowych wersji metod klasy bazowej, należy oznaczyć taką metodę jako abstrakcyjną za pomocą słowa kluczowego abstract. Umieszczenie w klasie przynajmniej jednej metody abstrakcyjnej powoduje, że cała klasa staje się abstrakcyjna. Klasy abstrakcyjne stanowią bazę dla klas pochodnych. W programie nie można tworzyć obiektów klas abstrakcyjnych. Przykład definicji i użycia klasy abstrakcyjnej przedstawia listing
49 49
50 50
51 51
52 Klasy zamknięte Klasy zamknięte stanowią przeciwieństwo klas abstrakcyjnych. Od klas zamkniętych nie można tworzyć klas pochodnych. Tworzeniu klas pochodnych zapobiega słowo kluczowe sealed umieszczone przed deklaracją klasy. Stosuje się ten sposób, aby zapobiec przypadkowemu dziedziczeniu. Próba utworzenia klasy potomnej w stosunku do klasy oznaczonej jako "zapieczętowana" powoduje przerwanie kompilacji z komunikatem informującym o niemożności dziedziczenia. 52
53 Klasa główna - Object Wszystkie klasy języka C# są klasami pochodnymi od klasy System.Object (dotyczy to także typów skalarnych). Klasa Object udostępnia wiele metod wirtualnych, które mogą być przesłaniane w klasach potomnych. Przykładami są metody Equals(), GetType(), ToString(). W tabeli 2.6 zestawiono metody klasy Object. Metoda Equals() GetHashCode() GetType() ToString() Finalize() MemberwiseClone() ReferenceEquals() Działanie Sprawdza czy dwa obiekty są sobie równe Pozwala obiektom udostępnić własną funkcję haszującą, używaną w kolekcjach Pozwala sprawdzić typ obiektu Zwraca łańcuch znaków reprezentujący obiekt Porządkuje zasoby inne niż pamięć. Implementowana za pomocą destruktora. Tworzy kopie obiektu. Nie można jej przesłonić w klasach definiowanych przez użytkownika Sprawdza, czy dwa obiekty wskazują na ten sam egzemplarz 53
Wykład 4. Klasa List Kolejki Stosy Słowniki
Wykład 4 Klasa List Kolejki Stosy Słowniki Klasa List Poważną niedogodnością tablic jako kolekcji danych jest fakt, że muszą one mieć stały rozmiar. Programista musi wiedzieć z góry ile miejsca powinien
Bardziej szczegółowo.NET Klasy, obiekty. ciąg dalszy
.NET Klasy, obiekty ciąg dalszy Przeciążanie operatorów 1 W języku C# istnieje możliwość zdefiniowania funkcjonalności dużej części operatorów dla typów stworzonych przez użytkownika. Dzięki takiemu zabiegowi,
Bardziej szczegółowoObszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
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ół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ółowoWykład 3 Składnia języka C# (cz. 2)
Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest
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ół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ół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ół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ół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ół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ół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ółowoWykład 9: Polimorfizm i klasy wirtualne
Programowanie obiektowe Wykład 9: i klasy wirtualne 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD Programowanie obiektowe i metody wirtualne 2 W programowaniu obiektowym polimorfizm
Bardziej szczegółowoPodstawy programowania. Podstawy C# Tablice
Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej
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 - 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ół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 Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Wirtualne destruktory class A int* a; A(int _a) a = new int(_a);} virtual ~A() delete a;} class B: public A double* b;
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ół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ółowoTEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Bardziej szczegółowoPodczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.
Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.
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ół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ółowoMechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Bardziej szczegółowoWykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Bardziej szczegółowoTypy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:
Typy klasowe (klasy) 1. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą obiektów
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ółowoFunkcje wirtualne. Wskaźniki do klas pochodnych są podstawą dla funkcji wirtualnych i polimorfizmu dynamicznego.
Funkcje wirtualne W C++ polimorfizm jest zrealizowany w dwa sposoby: na etapie kompilacji i na etapie wykonania. Na etapie kompilacji polimorfizm jest zrealizowany poprzez przeciążenie funkcji i operatorów.
Bardziej szczegółowoPARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Bardziej szczegółowoC++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.
C++ - DZIEDZICZENIE Do najważniejszych cech języka C++ należy możliwość wielokrotnego wykorzystywania kodu Prymitywnym, ale skutecznym sposobem jest kompozycja: deklarowanie obiektów wewnątrz innych klas,
Bardziej szczegółowoJava - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Bardziej szczegółowoDziedziczenie. dr Jarosław Skaruz
Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,
Bardziej szczegółowoKiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja
1 struktura, kolekcja Kiedy potrzebne Duża liczba danych takiego samego typu tablice a jak nieznana liczba elementów? dane zawierające wartości różnego typu (osoba: pesel, nazwisko, rok urodzenia, pracuje/niepracuje,
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ółowoKlasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np
Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami
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ółowoWykład 5 Wybrane zagadnienia programowania w C++ (c.d.)
Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.) Kontenery - - wektor vector - - lista list - - kolejka queue - - stos stack Kontener asocjacyjny map 2016-01-08 Bazy danych-1 W5 1 Kontenery W programowaniu
Bardziej szczegółowoCo to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.
.NET Klasy, obiekty Klasa i obiekt Każdy obiektowy język programowania daje programiście możliwość tworzenia nowych typów danych. Nowy typ danych definiuje się poprzez zdefiniowanie klasy. Co to jest klasa?
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ółowoMetody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
Bardziej szczegółowoDziedziczenie. Ogólna postać dziedziczenia klas:
Dziedziczenie Ogólna postać dziedziczenia klas: class nazwa_clasy_pochodnej : specyfikator_dostępu nazwa_clasy_bazowej specyfikator_dostępu : public private protected Specyfikator dostępu definiuje, w
Bardziej szczegółowoWykład 5 Okna MDI i SDI, dziedziczenie
Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie
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ół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ółowoObiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody
Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,
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ół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ół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ół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ół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ółowoDefinicje klas i obiektów. Tomasz Borzyszkowski
Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy
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ółowoProgramowanie obiektowe
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
Bardziej szczegółowoW2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :
Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;
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ółowoJęzyk C++ Programowanie obiektowe
Język C++ Programowanie obiektowe Cechy programowania obiektowego abstrakcyjne typy danych hermetyczność obiektów (kapsułkowanie) dziedziczenie polimorfizm Programowanie proceduralne vs. programowanie
Bardziej szczegółowoRozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki zaprojektowany jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych jest to język pozwalający na programowanie zarówno proceduralne
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ół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ółowoInformatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki
Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas
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 Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Przydzielanie pamięci Poniżej przedstawiono w C++ dwie klasy obrazujące sposób rezerwacji pamięci. class Osoba char imie[30];
Bardziej szczegółowoJava: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
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 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ółowoPARADYGMATY PROGRAMOWANIA Wykład 2
PARADYGMATY PROGRAMOWANIA Wykład 2 Definiowanie klas w C++ - ciąg dalszy Lista inicjalizująca konstruktora Przeznaczenie - do inicjalizacji pól klasy z kwalifikatorem const i inicjalizacji obiektów składowych
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ółowo2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
Bardziej szczegółowoListy powiązane zorientowane obiektowo
Listy powiązane zorientowane obiektowo Aby zilustrować potęgę polimorfizmu, przeanalizujmy zorientowaną obiektowo listę powiązaną. Jak zapewne wiesz, lista powiązana jest strukturą danych, zaprojektowaną
Bardziej szczegółowoSkładnia C++ Programowanie Obiektowe Mateusz Cicheński
Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Konstruktory i destruktory
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ółowoJęzyki i techniki programowania Ćwiczenia 2
Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...
Bardziej szczegółowoMechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Bardziej szczegółowoProgramowanie obiektowe w języku
Programowanie obiektowe w języku C++ Stanisław Gepner sgepner@meil.pw.edu.pl Dziedziczenie Wstęp Zacznijmy od przykładu Przykład rolniczy Każde zwierzątko wydaje dźwięk Każde się tak samo porusza Musimy
Bardziej szczegółowo2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych zajęć
Bardziej szczegółowoProgramowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy
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ółowoWykład 6: Dziedziczenie
Wykład 6: Dziedziczenie Dziedziczenie Jeden z filarów obiektowości. Budowa jednej klasy na bazie drugiej, przez dodawanie/przesłanianie jej składowych: nad-klasa klasa bazowa pod-klasa klasa pochodna od
Bardziej szczegółowoLaboratorium z przedmiotu Programowanie obiektowe - zestaw 04
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych
Bardziej szczegółowoWprowadzenie do programowanie obiektowego w języku C++
Wprowadzenie do programowanie obiektowego w języku C++ Część czwarta Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura
Bardziej szczegółowoJęzyki i metodyka programowania. Język C# pętle, sterowanie, wyjątki
Język C# pętle, sterowanie, wyjątki Język C# pętle Pętle: while ( ) do { while ( ); for ( ; ; ) foreach ( in
Bardziej szczegółowoC++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
Bardziej szczegółowoJęzyki programowania imperatywnego
Katedra Inżynierii Wiedzy laborki 7 i 8 Klasy abstrakcyjne klasa abstrakcyjna pozwala wymusić implementację metody; klasa oznaczona jest jako abstrakcyjna, jeżeli przynajmniej jedna metoda jest abstrakcyjna;
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ółowoLista, Stos, Kolejka, Tablica Asocjacyjna
Lista, Stos, Kolejka, Tablica Asocjacyjna Listy Lista zbiór elementów tego samego typu może dynamicznie zmieniać rozmiar, pozwala na dostęp do poszczególnych elementów Typowo dwie implementacje: tablicowa,
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ółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 4. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Przeciążanie operatorów Funkcje zaprzyjaźnione Na
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ółowoModelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014
Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80
Bardziej szczegółowoIMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji
Bardziej szczegółowoC++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm POLIMORFIZM
POLIMORFIZM Podstawowe pytanie, które nieustannie ma towarzyszyć autorowi programowi: czy gdyby nagle okazało się, że jest więcej... (danych na wejściu, typów danych, czynności, które program ma wykonać,
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ółowoLaboratorium 1 - Programowanie proceduralne i obiektowe
Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?
Bardziej szczegółowoPakiety i interfejsy. Tomasz Borzyszkowski
Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji
Bardziej szczegółowo